2016-06-28 35 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