1
這是一些意想不到的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」 停下來?
這是一些意想不到的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
,或者重新考慮循環將應用於的範圍。
非常感謝。 「與其他許多語言相反」 - 正是:) –
'5:3'給出序列'c(5,4,3)'。參見'?「:」',*「對於來自:的其他參數相當於seq(from,to),並以1或-1爲步長生成從到到的序列。」* – Therkel
期望的輸出是什麼? – zx8754