2013-03-19 60 views
0

我已通過網站搜索,但一直無法找到解決我的問題。我有一個樣本數據集如下:根據名義變量在R中的排名頻率分佈

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的分佈,但我被卡住了。我不知道如何將相關列組合在一起,然後找到分佈或至少構建直方圖。我可以用一個變量構造一個直方圖,但是我不能用一個名義變量構造一個排名頻率分佈。

回答

2

baseR方法是使用tapply

如果您data.frame叫aa

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

barplot(sumById) 

enter image description here

如果你想繪製你的結果,而不明確presumarizing,那麼你可以使用ggplot2stat_summary

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

enter image description here

+0

謝謝。這非常有幫助。我得到了我所需要的。 – Shion 2013-03-19 03:15:49