在R中嵌套for循环,终止
问题描述:
这是一些意想不到的R行为。在R中嵌套for循环,终止
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” 停下来?
答
这是因为在第二个for for循环你去从4到3向后时i
= 3 R包括较低和序列在(相对于许多其他语言)的上数。因此,1:3
将返回包括1和3的向量c(1,2,3)
。
检查?`:`
以获得更多信息。
因此,循环继续运行。要停止运行循环,可以在if
检查中考虑?break
,或者重新考虑循环将应用于的范围。
+1
非常感谢。 “与其他许多语言相反” - 正是:) –
'5:3'给出序列'c(5,4,3)'。参见'?“:”',*“对于来自:的其他参数相当于seq(from,to),并以1或-1为步长生成从到到的序列。”* – Therkel
期望的输出是什么? – zx8754