我的数据就像
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
请提出建议
答案 0 :(得分:0)
我们可以使用aggregate
来paste
为每个“零件”提供“供应商”
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)]