使用循环在R中创建计数器

使用循环在R中创建计数器,r,R,我是R的初学者,搜索了论坛,没有找到这个问题的答案。我试图在R中创建一个循环,用于计算数据帧中两行之间是否满足条件。我知道这不是一个有效的方法,但这是一个课堂作业。我的问题是,我的代码创建了一个无止境的循环,而不是给我计数器输出,我不清楚如何修复它。如有任何建议,我将不胜感激。代码如下: counter=0 for (i in 1:nrow(dataframe)) {if (dataframe$column1[i]>dataframe$column2[i]==TRUE) { count

我是R的初学者,搜索了论坛,没有找到这个问题的答案。我试图在R中创建一个循环,用于计算数据帧中两行之间是否满足条件。我知道这不是一个有效的方法,但这是一个课堂作业。我的问题是,我的代码创建了一个无止境的循环,而不是给我计数器输出,我不清楚如何修复它。如有任何建议,我将不胜感激。代码如下:

counter=0
for (i in 1:nrow(dataframe))
  {if (dataframe$column1[i]>dataframe$column2[i]==TRUE)
{
counter=counter+1}
}
print(counter)

如果您只想知道列1比列2高多少倍,则不必使用循环:

counter <- sum(dataframe$column1>dataframe$column2)
计数器数据帧$column2)
sum(dataframe$column1>dataframe$column2)
在验证条件时,为您提供长度为nrow(dataframe)的向量,其中包含
TRUE
FALSE
,R使用向量库逐个元素执行此操作


然后,当您对它求和时,
TRUE
被视为1,
FALSE
被视为0。因此,它给出了在两列之间验证条件的次数。

代码没有明显的错误,但如果您也可以共享数据帧,这将非常有用。我很欣赏使用sum命令的简洁解决方案,但我需要使用控制流来完成此分配,这就是我使用循环的原因。我引用的dataframe中的列既有数字也有空值。我修改了上面的代码,在counter=counter+1下面的行中放了一个print(counter)语句,但是当我运行循环时,我没有得到输出,而不是当前计数器。我不清楚我做错了什么,因此如果有任何其他建议,我将不胜感激