创建累积概率密度函数
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
我在 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 columntimep
should be equal to: the number of elements in columntime
that are smaller or equal than the item in columntime
on rowi
, 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