2016-06-28 78 views
0

標籤如何繪製表示像表中每個類的合計值的值:薩姆根據中的R

a a,b a,b,c c 
    5  2  1  2 

例如,對於上面的例子中預期的結果是:

a b c 
    8 3 3 

我因爲我甚至無法在計算器的任何位置找到一個緊密的解決方案,所以最近的解決方案是dcast function,但是這隻會檢查是否存在平等問題。使用基礎R

+0

Urg,這很醜,但使用'tidyr'和'dplyr':'dat%>%gather(var,val)%>%separate_rows(var,sep =',')%>%group_by(var)% >%summary(val = sum(val))%>%spread(var,val)' – alistaire

回答

3

的一種方式,

sapply(unique(unlist(strsplit(names(df), '\\.'))), function(i) 
            sum(df[grepl(i, names(df))])) 
#a b c 
#8 3 3 

注:我用\\.strsplit,而不是,因爲名字被讀出這樣的。

+1

它的工作,但我仍然喜歡使用「,」 – lkn2993