【问题标题】:"'X' and 'Y' lenghts differ" Error in RStudio“'X' 和 'Y' 长度不同”RStudio 中的错误
【发布时间】:2020-01-25 21:57:20
【问题描述】:

我有一个包含 503 个数字的数据集,范围从 -0.8 到 2.7 向下一个 Excel 列。我希望通过以下方式使用 dnorm 对正态分布进行采样:

plot(x=seq(from=-1,to=3,by=0.01),
 datNorm2 <- dnorm(x, mean=dat$x[1], sd=dat$x[2]),
plot(datNorm2))

其中 dat$x[1] 是平均值,dat$x[2] 是数据的标准差。当我运行它时,我收到“'x' and 'y' lengths different 错误。有人可以帮我理解为什么吗?

【问题讨论】:

  • 请以可重现的方式提供工作代码。在这种情况下:(1)我们在对dnorm 的调用中没有引用xdat; (2) 如果我设计dat &lt;- list(x=c(2,4)),我会得到Non-numeric argument to mathematical function。也许只是x &lt;- seq(from=-1, to=3, by=0.1); y &lt;- dnorm(x, mean=2, sd=4); plot(x, y)? (当然,这被简化/减少了一点)

标签: r


【解决方案1】:

您的代码的第二行显示不正确。在 R 中使用 [] 时,括号将引用向量中元素的位置。例如,[3] 将引用向量中的第三项。

我对您打算使用代码实现的目标做了一些假设。最后,很明显您打算创建两个图 - 一个图是基本数据,另一个图是分布。我对您的代码的解释如下:

library(repr)
options(repr.plot.width = 5, repr.plot.height = 4)  # To set plot size


x=seq(from=-1,to=3,by=0.01)

print(m <- mean(x))
print(std <- sd(x))
length(x)

par(mfrow = c(1, 2)  )       # To combine two plots

plot(x)
plot(dnorm(x, mean = m, sd = std))    

【讨论】:

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