【问题标题】:Create cumulative probability density function创建累积概率密度函数
【发布时间】:2016-04-24 20:29:45
【问题描述】:

我在 R 中有以下数据框 df

      time
[1]  0.432
[2]  0.451
[3]  0.399
[4]  0.422
...
[25] 0.444

现在,我想在这个数据框(我们称之为timep)中添加一列,其中的元素通过以下公式计算:

timep 列中i 行上的项目应等于:time 列中小于或等于i 行上time 列中项目的元素数除以数据框的行数。

在伪代码中:df$timep[i] <- count(df$time <= df$time[i])/length(df)

只是,我真的不知道如何在 R 中正确表达这一点。

【问题讨论】:

    标签: r dataframe probability distribution


    【解决方案1】:

    R 有一个内置的经验 cdf ecdf

    假设你有一个数据框df

    df <- data.frame(time = c(0.432, 0.451, 0.399, 0.422, 0.444))
    

    您可以使用以下方法创建经验 cdf:

    P <- ecdf(df$time)
    

    现在,如果您将一个值传递给 P,它将返回该值的累积概率:

    df$cdf <- P(df$time)
    

    输出:

       time cdf
    1 0.432 0.6
    2 0.451 1.0
    3 0.399 0.2
    4 0.422 0.4
    5 0.444 0.8
    

    【讨论】:

    • 非常好!正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 2015-05-08
    相关资源
    最近更新 更多