我是R的初学者并搜索论坛,但没有找到这个问题的答案。我试图在R中创建一个循环,用于计算数据帧中2行之间是否满足条件。我知道这不是一种有效的方法,但它适用于课堂作业。我的问题是我的代码创建了一个无限循环,而不是给我计数器输出,我不清楚如何解决它。我非常感谢任何建议。代码如下:
counter=0
for (i in 1:nrow(dataframe))
{if (dataframe$column1[i]>dataframe$column2[i]==TRUE)
{
counter=counter+1}
}
print(counter)
答案 0 :(得分:1)
如果您只想知道第1列高于第2列的次数,则不必使用循环:
counter <- sum(dataframe$column1>dataframe$column2)
sum(dataframe$column1>dataframe$column2)
在条件验证时为您提供长度为nrow(dataframe)
且TRUE
和FALSE
的向量,并且R按元素和vectores执行此元素。
然后,当您sum
时,TRUE
被视为1,FALSE
被视为0.因此,它会为您提供在两列之间验证条件的次数。< / p>