【发布时间】:2014-06-17 17:52:02
【问题描述】:
我有两个 R 数据文件,每个文件有 100 列,但每个 data1 和 data2 中的行数从 220 到 360 不等。 data1 和 data2 表示一组实验中两个量的变化。所以 data1 的 [i,j] 和 data2 的 [i,j] 代表相同的事件,但会有不同的值。我想在任何文件中打印大于 2.5 的数据,以及列号和行号
for (i in 1:360){
for (j in 1:100){
if((data1[i,j]>2.5) | ( data2[i,j]>2.5)) {
cat(i, j, data1[i,j], data2[i,j], "\n", file="extr-b2.5.txt", append=T)
}
}
}
由于 NA,我收到此错误。
Error in if ((data1[i, j] > 2.5) | (data2[i, j] > :
missing value where TRUE/FALSE needed
如果我将 i 设置为 1:220(每列至少有 220 行),它工作正常。
如何修改上述代码以忽略 NA 值。
【问题讨论】:
-
首先要做的可能是放弃
for循环。第二个是a reproducible example -
也许您应该为此使用
?which并使用索引返回并提取数据