首页 > 解决方案 > 在R中为卡方生成pdf

问题描述

我想要可视化 R 中卡方分布的 pdf。我对绘图部分没问题,但很难获得数据帧。我想要的是 100,000 个自由度为 1、2、3、6 的随机数的 pdf。

这是我尝试过的。

set.seed(1)
data.frame(chisq = 0:100000) 
df1 = dchisq(x = chisq, df = 1)
df2 = dchisq(x = chisq, df = 2)
df3 = dchisq(x = chisq, df = 3)
df6 = dchisq(x = chisq, df = 6)

然后我得到一个错误:

dchisq 中的错误(x = chisq,df = 1):数学函数的非数字参数

回溯: 1. dchisq(x = chisq, df = 1)

标签: rdataframechi-squared

解决方案


如果您需要 4 个不同的数据帧,则可以避免使用代码的前两行并使用此代码

x = 0:99999   # this way the vector has length 100000 instead of 100001
df1 = data.frame(x = x, dchisq = dchisq(x, df = 1))
df2 = data.frame(x = x, dchisq = dchisq(x, df = 2))
df3 = data.frame(x = x, dchisq = dchisq(x, df = 3))
df6 = data.frame(x = x, dchisq = dchisq(x, df = 6))

编辑

评论中讨论后的代码

ggplot(df1) +
  aes(x = x, y = dchisq) +
  geom_area(fill = "blue")

推荐阅读