我试图根据'freq'中给出的'x'的观察频率来绘制'x'的ECDF。数据框如下所示。
x freq
1 1 165
2 2 898
3 3 289
4 4 2220
5 5 535
6 6 1885
7 7 2344
8 8 36550
9 9 884
10 10 1480
11 11 1132
12 12 2733
13 13 1828
14 14 11152
15 15 6379
16 16 304355
以下代码段似乎生成了我想要的内容,但我想知道这是否是 right / better / idiomatic 这样做的方式。
ggplot(transform(freq.data, ecdf = cumsum(freq)/sum(freq.data$freq)), aes(x, ecdf)) + geom_step()
答案 0 :(得分:2)
这有用吗?
library(ggplot2)
x <- with(df, rep(x, freq))
ggplot(data = data.frame(x = x), aes(x)) + stat_ecdf()