R中名义变量的频率分布排序

时间:2013-03-19 02:46:08

标签: r distribution frequency-distribution

我在网站上搜索过但无法找到解决问题的方法。我有一个样本数据集如下:

id,l1
1,3
2,5
3,6
1,5
2,4
3,6

id是名义变量,表示唯一用户,另一个是计数变量。

我想要的是找出用户的l1分布。因此,查看我给定的数据集,id = 1总共l1 = 8; id = 2总l1 = 9而id = 3总l1 = 12.

我试图根据id找出l1的分布,但我被卡住了。我无法弄清楚如何将相关列组合在一起,然后找到分布或至少构建直方图。我可以构建一个带有一个变量的直方图,但我不能通过一个名义变量构建一个排名的频率分布。

1 个答案:

答案 0 :(得分:2)

base R方法是使用tapply

如果您的data.frame被调用aa

sumById <- with(aa, tapply(l1,id, sum)))

barplot(sumById)

enter image description here

如果您想在没有明确推测的情况下绘制结果,那么您可以使用ggplot2stat_summary

library(ggplot2)
ggplot(aa, aes(x = id, y = l1)) + stat_summary(fun.y = 'sum', geom = 'bar')

enter image description here