这是一些意想不到的R行为。
for(i in 1:3)
{
for(j in (i+1):3)
{
print(paste(i,j))
}
}
的产率:
[1] "1 2"
[1] "1 3"
[1] "2 3"
[1] "3 4"
[1] "3 3"
为什么不停在“2 3”?
答案 0 :(得分:3)
这是因为在for循环的第二个中,当i
= 3时,你会从4向后变为3. R包括序列中的较低和较高的数字(相比之下)到许多其他语言)。因此,1:3
将返回c(1,2,3)
的向量,包括1和3。
检查?`:`
以获取更多信息。
因此,循环继续运行。要停止运行循环,您可以在?break
检查中考虑if
,或重新考虑将应用循环的范围。