2014-09-03 70 views
0
for (i in range(1:4)) { 
    for (j in range(1:4)) { 
     print ("Processing...") 
    } 
} 

简单,平原嵌套导致这个输出循环行为奇怪:内环中的R

[1] "Processing..." 
[1] "Processing..." 
[1] "Processing..." 
[1] "Processing..." 

这使我零感。实际的程序有点复杂,我只想知道我在这里做错了什么?

+0

“'range'返回一个包含所有给定参数的最小值和最大值的向量”,所以你实际上只每次迭代循环两次。相反,只需使用'for(我在1:4)' – voidHead 2014-09-03 23:05:49

回答

2

您可以通过不使用range来获得序列。我想你可能会把它和Python函数混淆起来。 从帮助页面:

“范围”将返回一个包含所有 给定参数的最小值和最大值的向量。

所以发生了什么是你正在采取序列并返回最小值和最大值(分别为1和4)而不是枚举。

试试这个:

for (i in 1:4) { 
    for (j in 1:4) { 
     print ("Processing...") 
    } 
} 
+0

谢谢!我想我需要一些咖啡:-x – 2014-09-03 23:10:27