这是NA主题的一种变体,我无法找到答案。我每月都按列观察,大量按行观察。有些缺失值是真实值,但有些应为零。我想将给定系列的缺失值替换为零,但前提是已观察到该系列的值。
例如,给定:
Mth1 Mth2 Mth3 Mth4
1 1 2 1 3
2 NA 3 2 1
3 NA 2 1 NA
4 NA NA 2 NA
5 2 2 NA 2
我想将其更改为:
Mth1 Mth2 Mth3 Mth4
1 1 2 1 3
2 NA 3 2 1
3 NA 2 1 0
4 NA NA 2 0
5 2 2 0 2
我想要类似locf
函数的功能,它能够在第一个正观测值之前保留缺失值,但是我想用零填充而不是使用最后一个观测值。
这是使用矩阵索引的另一种基本R方法:
df[is.na(df) & t(apply(!is.na(df), 1, cummax))] <- 0
df
Mth1 Mth2 Mth3 Mth4
1 1 2 1 3
2 NA 3 2 1
3 NA 2 1 0
4 NA NA 2 0
5 2 2 0 2
is.na(df)
返回指示NA值位置的逻辑矩阵。(在逻辑上)链接至t(apply(!is.na(df), 1, cummax))
该行,以指示在前一行元素中是否出现非NA值。都为TRUE的data.frame元素替换为0。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句