创建累积概率密度函数

Create cumulative probability density function

我在 R 中有以下数据框 df

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

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

The item on row i in column timep should be equal to: the number of elements in column time that are smaller or equal than the item in column time on row i, divided by the number of rows of the dataframe.

In pseudocode: df$timep[i] <- count(df$time <= df$time[i])/length(df)

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

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,它将 return 该值的累积概率:

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