2017-03-05 45 views
0

匹配data.frame列我有一個假設的數據幀如下:如何申請一個總結措施中的R

# inventory of goods    
year category count-of-good 
2010 bikes  1 
2011 bikes  3 
2013 bikes  5 
2010 skates  1 
2011 skates  1 
2013 skates  0 
2010 skis  0 
2011 skis  2 
2013 skis  2 

我的最終目標是,以顯示如何%-<good>-of-decade-total改變堆積條形圖年初至一年。

因此,我想計算如下:

enter image description here

現在,我應該能夠ggplot(df, aes(factor(year), fill=percent.total.decade.goods) + geom_bar,或類似的,產生一個條形圖,其中每個杆總和爲100%(希望!)。然而,我正在努力確定如何以非hacky的方式獲得percent.good.of.decade.total(最右邊的列)。謝謝你的時間!

回答

1

您可以使用dplyr來計算的總和:

library("dplyr") newDf=df%>%group_by(year)%>%mutate(decades.total.goods=sum(count.of.goods))%>%ungroup()

或者使用發生變異或正常[R語法來計算「十年%共好」

注意:你有沒有共享您的確切的數據框架,所以名稱顯然是由它們組成的。

+0

這是太爽做到這一點!感謝教學! – cdaringe

0

我們可以從avebase R

df1$decades.total.goods <- with(df1, ave(count.of.good, year, FUN = sum)) 
df1$decades.total.goods 
#[1] 2 6 7 2 6 7 2 6 7