【问题标题】:'x' and 'y' lengths differ in RR中的“x”和“y”长度不同
【发布时间】: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)==99length(Udprime)==1?我假设您的意思是 plot(w, Uprime, ...)
  • 好的,谢谢,如何解决这个问题?
  • Udprime 是关于w 的二阶导数,对于w 的所有值都是常数。因此,绘图将显示一条水平线。你真正想要绘制的是什么?
  • 也许你想要plot(w, U)
  • 或设置Udprime &lt;- -beta + 0 * w,使其长度与length(w)相同。

标签: r plot


【解决方案1】:

要绘制财富效用函数二阶导数的水平线,您需要确保 Udprime 对每个点 w 都有一个点。有两种方法可以做到这一点:

快捷方式:

plot(cbind(w, Udprime))

更多“真正的数学”:

Udprime = -beta * w^0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多