2013-05-17 180 views
0

我在问一个简单的问题。为什么这两个代码片段不一样?“相同”代码的不同结果

pNl <- {} 

for(i in length(x):length(x)-250) { 
    temp <-x[i] - x[i-1] 
    pNl <-append(pNl, temp, length(pNl)) 
} 

pNl 

PnL <- {} 

for(i in length(x):(length(x)-250)) { 
    temp <- x[i] - x[i-1] 
    PnL <- append(PnL, temp, length(PnL)) 
} 


PnL 

我得到不同的结果,当我执行他们...

我真的很感谢你的回答!

+0

请让您的问题具有可重复性,即向我们提供'x'。 –

+0

明显的错误是不明显的:-) - 这个问题无疑会让伯恩斯先生高兴,因为他喜欢指出错误的代码如何运行没有错误并且不会产生任何你想要的东西。 –

+0

运算符优先级。 (再次。) –

回答

6

问题出在for循环定义中。在第一循环语句,你都不放过括号,即

#length(x):length(x)-250 
R> 2:5-1 
[1] 1 2 3 4 

在你有括号内的第二循环,所以:

#length(x):(length(x)-250) 
R> 2:(5-1) 
[1] 2 3 4 

这两句话是不一样的,所以你不遍历一样的东西。

相关问题