2013-08-26 34 views
1

为什么下面的代码在x轴上指向1:10而不是在0:9? (我知道我可以以不同代码时要解决的问题,不过,我想知道。)在for循环中绘图:为什么我不能从柜台中减去?

y <- rep(1,10) 

for (i in 1:10) { 

      if (i == 1) { 
        plot(y[i]~(i-1),pch = 14, 
         ylim = c(0,2), 
         xlim=c(0,11)) 
      } 
      else {points(y[i]~(i-1), pch = 14) 
      } 
} 

回答

2

您必须使用I()(AS-IS)式的结构:

y <- rep(1,10) 
for (i in 1:10) { 
      if (i == 1) { 
        plot(y[i]~I(i-1),pch = 14, 
         ylim = c(0,2), 
         xlim=c(0,11)) 
      } 
      else {points(y[i]~I(i-1), pch = 14) 
      } 
} 

这是(根据?I),因为公式内部的算术运算符(“+”,“ - ”,“*”和“^”)被解释为公式运算符(用于添加/删除项或创建交互)而不是算术运算符。

您可以通过将您的plot调用更改为:plot(i-1,y[i],...)来获得相同的结果以脱离公式模式。

2

在公式中,术语-1被定义为“无截距”。当然,这对你的情节没有直接的影响,因此被忽略。

请注意,术语-1是一种特殊情况。如果您在公式中使用例如-2,则会收到错误消息。

相关问题