说,我有一个数据框如下
1 2
1 4
1 6
1 7
1 9
从1:10运行循环时,我想只检索上表中与1一起出现的那些数字,即2,4,6,7,9。这是我的代码使用哪个条件,但是,我得到一个错误说,“错误在if:参数长度为零”。我也尝试使用== TRUE而不是> 0,仍然得到相同的错误。
for(i in 1:10)
{
if(which((mydata[,1] == 1) & (mydata[,2] == i)) > 0)
{
print("yes");
}
else
{
print("no")
}
}
答案 0 :(得分:3)
与建议一样,您必须检查length
的{{1}}输出:
which
更合适的工具是if (length(which(mydata[,1] == 1 & mydata[,2] == i)) > 0)
:
any
我还建议删除两组最里面的括号,因为if (any(mydata[,1] == 1 & mydata[,2] == i))
运算符的优先级高于==
(请参阅&
)。