与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
有什么想法?
答
这将适用于您的示例,它由所有数字列组成。
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
你可以使用这个'是。 na(df) lmo
或者'df [df yeedle
我已经做到了,它说:警告消息: 在Ops.factor(左,右):' mppd