与NA r中

与NA r中

问题描述:

改变我的参数下的所有值我有朦胧113x159一个大的数据帧,这样的:与NA r中

i1 i2 i3 i4 
1 49 76 3 65 
2 35 14 37 98 
3 90 17 71 27 
4 27 65 54 88 

我需要改变所有值,像这样:

i1 i2 i3 i4 
1 49 76 NA 65 
2 35 NA 37 98 
3 90 NA 71 27 
4 27 65 54 88 

有什么想法?

+4

你可以使用这个'是。 na(df) lmo

+1

或者'df [df yeedle

+0

我已经做到了,它说:警告消息: 在Ops.factor(左,右):' mppd

这将适用于您的示例,它由所有数字列组成。

is.na(df) <- df < 20 

df 
    i1 i2 i3 i4 
1 49 76 NA 65 
2 35 NA 37 98 
3 90 NA 71 27 
4 27 65 54 88 

对于真实数据集的情况,看起来您有因子列。在这种情况下,您应该使用sapply来检查每列的类型,并仅对数字列执行替换。这将工作

is.na(df[sapply(df, is.numeric)]) <- df[sapply(df, is.numeric)] < 20 

也适用于你的例子。

警告: 比运营商,<越少,工作比较字符,但他们返回FALSE为<

"t" < 20 
[1] FALSE 
"t" < 2000000000000 
[1] FALSE 

和TRUE为>

"t" > 2000000000000 
[1] TRUE 
+1

真的很好,它的工作原理。谢谢! – mppd