循环遍历行直到满足 R 中的条件

时间:2021-03-13 12:57:29

标签: r

我正在尝试遍历数据框中的每一行,如果该行包含 1,我希望将“bf”更改为 True,以便循环取消,然后打印出行的索引。这是我在下面尝试过的代码。

bf <- FALSE
for(row in 1:nrow(df)){
   while(bf == FALSE){
      if(df[row, ] == 1){
         bf==TRUE
         print(row)
        
     }
   }
}

然而,这段代码发生的事情是,据我所知,它似乎永远不会得到 if 语句并正确执行它

2 个答案:

答案 0 :(得分:1)

您可以使用 applyanywhich 函数来标识带有 1 的行。然后选择第一行:

bdrows <- apply(df, 1, function(x) any(x == 1))
bd <- which(bdrows == TRUE)
firstbdrow <- bd[1]

答案 1 :(得分:1)

bf==TRUE 用于比较,您可能正在寻找 bf = TRUE。此外,这不操作不需要 forwhile 循环。假设您的数据中有一个名为 column_name 的列,您可以这样做:

which.max(df$column_name == 1)

which(df$column_name == 1)[1]