2016-04-24 120 views
0

我有R中以下数据帧df创建累积概率密度函数

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

现在,我想将列添加到该数据框(我们称之为timep),它的元素是由计算下面的公式:

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

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

只是,我真的不知道我怎么能正确R.

回答

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,它将返回累计probabilty对于该值:

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 
+0

非常好!正是我在找什么。 – JNevens