“相同”代码的结果不同

时间:2013-05-17 09:22:08

标签: r

我问一个简单的问题。为什么这两个代码片段不一样?

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

当我执行它们时会得到不同的结果......

我非常感谢你的回答!!!

1 个答案:

答案 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

这两个陈述不一样,因此你不会在同一个事情上循环。