【发布时间】:2019-10-23 20:57:02
【问题描述】:
我有两个数据框:
df1=data.frame(A=c(1,2,4,8), B=c(4,3,2,9), C=c(10,11,1,2), D=c(12,40,3,4))
df2=data.frame(A=c(0.5,2.0,0.1,0.3), B=c(1.5,0.5,0.2,0.1), C=c(3.0,1.25,0.5,0.2), D=c(0.7,0.8,0.2,2.0))
我想在 df1 中为所有列保留 0.8 的列中保留 NAs
我试图在 df2 中查找和替换 > 0.8 的值:
df2[df2 >= 0.8] <- NA
然后我尝试用 df2 中的NA 替换 df1 中的所有匹配值,但类似于下面的脚本需要列而不是数据框:
df1[match(df1, df2==NA)]
我希望最终的数据框如下所示:
df3=data.frame(A=c(1,NA,4,8), B=c(NA,3,2,9), C=c(NA,NA,1,2), D=c(12,40,3,NA))
TIA
【问题讨论】:
-
NA不应被引用 -
@akrun 引号删除不能解决问题或回答问题
-
您的预期输出与
NA^(df2 > 0.8) * df1提供的描述不匹配 -
@akrun 不想粗鲁,只是直截了当,引号没有任何帮助,将您的建议添加到可能的解决方案中可能会更有帮助。您对我想要的结果是正确的,所以我对其进行了编辑,感谢您指出。
-
没关系。我提到,如果你犯了错误,引用
NA可能会在其他情况下导致一些问题
标签: r