为什么以下代码绘图指向x轴上的1:10
而不是0:9
?
(我知道我可以用不同的方式编码来解决问题,不过,我想知道。)
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)
}
}
答案 0 :(得分:2)
您必须使用I()
(原样)公式构造:
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],...)
来取消公式模式。
答案 1 :(得分:2)
在公式中,术语-1
被解释为&#34;没有拦截&#34;。当然,这对你的情节没有直接影响,因此被忽略了。
请注意,术语-1
是一种特殊情况。如果您在公式中使用-2
,则会收到错误消息。