我想在R中绘制此函数:
我的代码:
lambda <- function (i) {
m <- 50
j=max(1,i+m)
n <- 27090
((2*m+1)^(-1))*
for (i in j:min(n,i+m)) {
sum (fires_2009_2015$Wi)[j]
}
}
plot(lambda)
但是,当我运行代码时,出现错误:
“曲线错误(expr = x,从=从,到=到,xlim = xlim,ylab = ylab ,: 'expr'不求值对象'n'“
答案 0 :(得分:0)
问题是plot(lambda)
将使用带有lambda()
的向量参数的函数i
,而您对lambda()
的定义将无法正确处理。由于存在for
循环,因此要使其有效地处理矢量参数看起来有些棘手,但始终有蛮力方法:
lambda <- Vectorize(lambda)
此后,您的plot(lambda)
应该做些事情。它可能不是您想要的,因为它的默认范围是0到1,但是您可以执行以下操作
plot(lambda, from = 0, to = 20)
更改默认范围。