【发布时间】:2013-08-07 18:13:11
【问题描述】:
我试图在 R 中绘制一条水平线,但它给了我一个错误。
代码:
w <- seq(1, 99, by=1)
alpha <- 0.1
beta <- 0.001
U <- alpha*w -(beta/2)*w*w
Uprime <- alpha -(beta)*w
Udprime <- -beta
Utprime <- 0
plot(w,Udprime,type = "l",main = "Graph of U(W) versus wealth",xlab = "Wealth",ylab = "Utility Function")
当我绘制这个函数时,我得到了这个错误:
Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' and 'y' lengths differ
为什么会这样?需要一些指导。
【问题讨论】:
-
因为
length(w)==99和length(Udprime)==1?我假设您的意思是plot(w, Uprime, ...)。 -
好的,谢谢,如何解决这个问题?
-
Udprime 是关于
w的二阶导数,对于w的所有值都是常数。因此,绘图将显示一条水平线。你真正想要绘制的是什么? -
也许你想要
plot(w, U)? -
或设置
Udprime <- -beta + 0 * w,使其长度与length(w)相同。