我试图在 for 循环中跳过一些迭代:
Lines <- "
time Temperature
1 38.3
2 38.5
3 38.9
4 40.1
5 38.0
6 38.6
7 37.9
8 38.2
9 37.5
10 38.0"
DF <- read.table(text = Lines, header = TRUE)
for (i in unique(DF$time)){
ix=which(i==DF$time)
if(DF$Temperature[ix] > 38.65) ix=ix+3
print(ix)
}
但我没有得到想要的输出。它不会跳过迭代。相反,它只是覆盖它,以便我进行两次迭代。
输出:
[1] 1
[1] 2
[1] 6
[1] 7
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
期望的输出:
[1] 1
[1] 2
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
更新:
i=1
while(i<=DF$time){
if(DF$Temperature[i] > 38.65){
print(i)
i=i+3}
i=i+1
}
这就是我尝试过的。但显然是错误的。之前没用过。有人能帮我吗?
我认为你在 R 中混淆了for
vs.while
条款。这基本上就是你想要做的:
ix <- 1
while(ix <= 10) {
if (DF$Temperature[ix] > 38.65) {
ix = ix + 3
print(ix)
} else{
print(ix)
}
ix = ix + 1
}
用@jogo 的更正编辑
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句