【发布时间】:2014-12-11 11:51:26
【问题描述】:
我的目标是创建一个长数据框的简单密度或条形图,显示课程 (MOOC) 中国籍的相对频率。我只是不希望所有国籍都在里面,只需要前 10 名。我在下面创建了这个示例 df + 我用于绘图的 ggplot2 代码。
d=data.frame(course=sample(LETTERS[1:5], 500,replace=T),nationality=as.factor(sample(1:172,500,replace=T)))
mm <- ggplot(d, aes(x=nationality, colour=factor(course)))
mm + geom_bar() + theme_classic()
...但如前所述:我想要基于频率的整个数据集的子集。以上显示了所有数据。
PS。我为上下文添加了 ggplot2 代码,但也因为 ggplot2 本身可能有一些东西可以使这成为可能(但我对此表示怀疑)。
编辑 2014-12-11: 当前的答案使用 ddplyr 或 table 方法来达到所需的子集,但我想知道是否没有更直接的方法来实现相同的目标。我暂时保留它,看看是否有其他方法。
【问题讨论】:
-
关于您的“PS”和“编辑”:首先使用您选择的数据按摩工具准备数据框通常要容易得多,然后 i> 致电
ggplot。 This Q&A 与您的情况类似,是众多示例之一。干杯。
标签: r ggplot2 count subset ranking