我有一个数据框,我想用if条件循环它。
head(d)
col1 col2 col3
1 1 1 2.785561
2 2 1 5.765601
3 3 1 1.606134
4 4 1 3.475117
5 5 1 3.352561
6 6 1 2.849907
...
...
...
我想总结数据框中的每个值,如果值大于10,我想记录循环的索引并结束循环。我只想记录一个号码。我所拥有的是:
for (j in 1:nrow(d)){
if (d[j,3] > 10){
break }
output = j }
但输出值最终大于真实答案,应为3。
output
[1] 17
答案 0 :(得分:3)
更多r方法是使用cumsum
和which
:
which(cumsum(d$col3) > 10)[1]
# [1] 3
答案 1 :(得分:0)
如果您想使用for
循环,可以使用:
sum1 <- 0
for (j in 1:nrow(d)) {
sum1 <- sum1 + d$col3[j]
if (sum1 > 10) {
break
}
output = j + 1
}
output
#[1] 3