2013-08-26 37 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,則會收到錯誤消息。

相關問題