我试图在R中编写一个相对简单的AR(1)表示。我找不到这个代码的任何明显问题,而且我返回的不是错误,它很简单就是不写入环境,或将areone2识别为函数。任何建议都会非常感激。
areone2<-function(y,N,p,d){
yvec<-c(rep(y, times = N))
for(i in 1:N){
yvec[i+1]<-
((1+p*(yvec[i]-d))
+ d)
}
plot(yvec, type='l', xlab="N", ylab="yeild")
}
areone2(.3,10,.9,.2)
答案 0 :(得分:0)
它不会触发错误或警告,因为您在二进制操作中断了行,但解析器无法识别该二进制操作。使用+ 3
只是3
开始排队是完全合法的,这不是您想要的。
例如,2 + 3是5,我们可以期待。但是新行上的+3不会将其添加到上一行
> 2 ## break the line here and R returns 2
[1] 2
> +3 ## adding three next is not recognized as a continuation of a call
[1] 3
但是如果你用括号(不是括号)包装来电话,你仍然可以打破这一行
(2
+ 3)
# [1] 5 ## correct
{2
+ 3}
# [1] 3 ## incorrect
将yvec[]<-
作业转移到一行是更清洁,更安全的方式。
yvec[i+1] <- ((1+p*(yvec[i]-d)) + d)