我想根据两个分组变量聚合数据框中的一列,并用逗号分隔各个值.
这是一些数据:
data <- data.frame(A = c(rep(111, 3), rep(222, 3)), B = rep(1:2, 3), C = c(5:10))
data
# A B C
# 1 111 1 5
# 2 111 2 6
# 3 111 1 7
# 4 222 2 8
# 5 222 1 9
# 6 222 2 10
Run Code Online (Sandbox Code Playgroud)
"A"和"B"是分组变量,"C"是我想要折叠成逗号分隔character字符串的变量.我试过了:
library(plyr)
ddply(data, .(A,B), summarise, test = list(C))
A B test
1 111 1 5, 7
2 111 2 6
3 222 1 9
4 222 …Run Code Online (Sandbox Code Playgroud) 如何在列中按组聚合数据group并在列中折叠文本text?
样本数据:
df <- read.table(header=T, text="
group text
a a1
a a2
a a3
b b1
b b2
c c1
c c2
c c3
")
Run Code Online (Sandbox Code Playgroud)
所需输出(数据框):
group text
a a1a2a3
b b1b2
c c1c2c3
Run Code Online (Sandbox Code Playgroud)
我现在有:
sapply(unique(df$group), function(x) {
paste0(df[df$group==x,"text"], collapse='')
})
Run Code Online (Sandbox Code Playgroud)
这在某种程度上起作用,因为它返回按组正确折叠的文本,但作为向量:
[1] "a1a2a3" "b1b2" "c1c2c3"
Run Code Online (Sandbox Code Playgroud)
我需要一个带有group列的数据框.
我想基于两列生成索引以对观察进行分组.但是我希望小组能够通过观察来共享,至少有一个公共观察.我可以看到如何根据共同观察的观察结果制作小组,而不仅仅是其中一个.
例如,使用数据框:
dt <- data.frame(id=1:10,
G1 = c("A","A","B","B","C","C","C","D","E","F"),
G2 = c("Z","X","X","Y","W","V","U","s","T","T"))
Run Code Online (Sandbox Code Playgroud)
我想得到一个专栏
1,1,1,1,2,2,2,3,4,4
Run Code Online (Sandbox Code Playgroud)
我尝试使用dplyr中的group_indices,但还没有管理它.