我正在尝试遍历数据框中的每一行,如果该行包含 1,我希望将“bf”更改为 True,以便循环取消,然后打印出行的索引。这是我在下面尝试过的代码。
bf <- FALSE
for(row in 1:nrow(df)){
while(bf == FALSE){
if(df[row, ] == 1){
bf==TRUE
print(row)
}
}
}
然而,这段代码发生的事情是,据我所知,它似乎永远不会得到 if 语句并正确执行它
答案 0 :(得分:1)
您可以使用 apply
、any
、which
函数来标识带有 1 的行。然后选择第一行:
bdrows <- apply(df, 1, function(x) any(x == 1))
bd <- which(bdrows == TRUE)
firstbdrow <- bd[1]
答案 1 :(得分:1)
bf==TRUE
用于比较,您可能正在寻找 bf = TRUE
。此外,这不操作不需要 for
或 while
循环。假设您的数据中有一个名为 column_name
的列,您可以这样做:
which.max(df$column_name == 1)
或
which(df$column_name == 1)[1]