【问题标题】:Different results with "same" code“相同”代码的不同结果
【发布时间】:2013-05-17 09:22:08
【问题描述】:

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

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

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

非常感谢你的回答!!!

【问题讨论】:

  • 请让您的问题可重现,即向我们提供x
  • 明显的错误是不明显的 :-) -- 这个问题无疑会让 Burns 先生高兴,因为他喜欢指出错误的代码如何在没有错误的情况下运行,并且不会产生任何你想要的结果.
  • 运算符优先级。 (又一次。)

标签: r


【解决方案1】:

问题出在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

这两个语句不一样,所以你不会循环同一个东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    相关资源
    最近更新 更多