汇总R中的char列

时间:2019-04-10 10:38:07

标签: r

我的数据就像

  Part   Supplier
1  A      P
2  A      Q
3  B      R
4  B      S
5  B      T
6  C      U
7  C      V
8  C      W
9  C      X

所需的输出

  Part   Supplier
1 A      P,Q 
2 B      R,S,T
3 C      U,V,W,X

请提出建议

1 个答案:

答案 0 :(得分:0)

我们可以使用aggregatepaste为每个“零件”提供“供应商”

aggregate(Supplier ~ Part, df1, toString)
#    Part   Supplier
#1    A       P, Q
#2    B    R, S, T
#3    C U, V, W, X

或与dplyr

library(dplyr)
df1 %>% 
    group_by(Part) %>%
    summarise(Supplier = toString(Supplier))

或某些版本

df1 %>% 
    group_by(Part) %>%
    summarise(Supplier = paste(Supplier, collapse = ", ))

如果有不止一列

df1 %>%
     group_by(Part) %>%
     summarise_if(is.character, toString)

或使用data.table

library(data.table)
setDT(df1)[, .(Supplier = toString(Supplier)), .(Part)]