2016-04-24 8 views
0

Ich habe folgende Datenrahmen df in R:erstellen kumulativen Wahrscheinlichkeitsdichtefunktion

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

Nun würde Ich mag eine Spalte dieses Datenrahmen hinzufügen (nennen wir es timep), von denen die Elemente durch die berechneten folgende Formel:

die auf Zeile i in Spalte timep soll gleich: time die Anzahl der Elemente in der Spalte, die kleine oder gleich ist als der Punkt in der Spalte auf der Reihe timei, geteilt durch die Anzahl der Zeilen des Datenrahmens.

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

Nur, ich weiß wirklich nicht, wie ich das in R. richtig ausdrücken können

Antwort

3

R hat einen eingebauten in der empirischen CDF ecdf.

Angenommen, Sie haben einen Datenrahmen df:

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

Sie können eine empirische CDF erstellen mit:

P <- ecdf(df$time) 

Nun, wenn Sie einen Wert P übergeben, wird die kumulative probabilty zurückkehren für diesen Wert:

df$cdf <- P(df$time) 

Out:

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

Sehr nett! Genau das, wonach ich suche. – JNevens

Verwandte Themen