R 重塑数据框以创建列中唯一值的列表
我有数据集:R 重塑数据框以创建列中唯一值的列表,r,aggregate,reshape,R,Aggregate,Reshape,我有数据集: df <- data.frame(g = c("X", "X", "Y", "Z", "Y", "Z", "Z"), r = c("A", "B", "C", "C", "A", "A", "A")) df尝试一下: dg <- data.frame( g = levels(df$g), r = tapply(df$r, df$g, function(n) {paste(sort(unique(n)), collapse =
df <- data.frame(g = c("X", "X", "Y", "Z", "Y", "Z", "Z"),
r = c("A", "B", "C", "C", "A", "A", "A"))
df尝试一下:
dg <- data.frame(
g = levels(df$g),
r = tapply(df$r, df$g, function(n) {paste(sort(unique(n)), collapse = " ")})
)
> dg
g r
X X A B
Y Y A C
Z Z A C
dg
GR
X X A B
Y Y A C
Z Z A C
聚合()怎么样
您还可以使用公式样式并使用data
参数来避免写入df$·
:aggregate(r~g,function(x)paste0(sort(unique(x)),collapse=“”),data=df)
在这些情况下,我实际上更喜欢列表
而不是粘贴
,以保留在需要时进行进一步分析的灵活性<代码>聚合(r~g,df,函数(x)唯一(排序(如.character(x))),simplify=FALSE)
。但这确实回答了他们提出的问题,所以+1:-)
aggregate( df$r , by = list( df$g ) , function(x) paste0( sort( unique(x) ) , collapse = "" ) )
# Group.1 x
#1 X AB
#2 Y AC
#3 Z AC