如何在条件内循环数据框?

时间:2013-10-22 17:21:43

标签: r

我有一个data.frame(df),它包含两列(时间,结果)。我正在尝试根据时间在数据框内循环,并检查结果的值以执行某些条件。换句话说,我想从头开始直到df $ time值变为60.对于每次迭代,我需要检查df $ Result,如果它大于100.我通过使用子集完成了这个,我想知道如何以不同的方式做到这一点。例如嵌套For循环。

我创建了一个MWE来说明问题;

 time<-seq(1,100,0.1)
 Result<-seq(1,991,1)
 df<-data.frame(time,Result)
 # I want to loop inside the df until the df$time=60
 # for each iteration I want to check the df$Result  if it's >100.

这是我尝试在嵌套中执行的操作:

 Df_time<-df$time
 Df_result<-df$Result
 x<-0

 for(i in Df_time){

     if(i > 60.0){

       for(i in Df_result){
          if(i >100){
            x<-x+1
           }
        }   


     }

  }

   cat("Total is ",x,"\n")

它似乎不对..我认为它与内部for循环相关,因为它将覆盖整个范围......有什么建议吗?

2 个答案:

答案 0 :(得分:2)

这应该为您提供行数,我认为'您尝试将其添加为x

 dim(df[time < 60 & Result > 100,])[1]

答案 1 :(得分:2)

sum(df$time > 60 & df$Result > 100)

会做到这一点。