创建累积概率密度函数

时间:2016-04-24 10:02:42

标签: r dataframe probability distribution

我在R中有以下数据框df

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

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

  

i中行timep上的项应该等于:列time中元素的数量小于或等于列time中的项目的数量在行i上,除以数据帧的行数。

     

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

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

1 个答案:

答案 0 :(得分:3)

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