相关疑难解决方法(0)

将列折叠/连接/聚合到每个组中的单个逗号分隔字符串

我想根据两个分组变量聚合数据框中的一列,并用逗号分隔各个值.

这是一些数据:

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)

aggregate r r-faq

53
推荐指数
3
解决办法
2万
查看次数

如何连接矢量?

我想产生一个变量这是两个字符的串联,例如从"p30s4""p28s4"到"p30s4 p28s4"去了.我尝试了猫和粘贴,如下所示.两者都返回空变量.我究竟做错了什么?

> blah = c("p30s4","p28s4")
> blah
[1] "p30s4" "p28s4"

> foo = cat(blah)
p30s4 p28s4
> foo
NULL

> foo = paste(cat(blah))
p30s4 p28s4
> foo
character(0)
Run Code Online (Sandbox Code Playgroud)

r vector concatenation

32
推荐指数
2
解决办法
5万
查看次数

使用 group_by 连接字符串并在 r 中汇总

我正在尝试根据分组将一列字符串连接在一起。我使用的代码在我看来与其他人使用的代码相同(例如使用 dplyr 连接列)但它不起作用,我不知道为什么。

a = tibble(
       x = c(1,2,1,2),
       z = c('1','2','3','4')
   )

a %>% group_by(x) %>% summarise(val=paste(z, collapse=" "))
Run Code Online (Sandbox Code Playgroud)

给出:

   val
1 1 2 3 4
Run Code Online (Sandbox Code Playgroud)

就好像只有一组一样。然而,当我执行不同的功能时,分组工作正常:

a %>% group_by(x) %>% tally()
# A tibble: 2 × 2
      x     n
  <dbl> <int>
1     1     2
2     2     2
Run Code Online (Sandbox Code Playgroud)

知道可能是什么问题吗?

r dplyr

5
推荐指数
1
解决办法
3801
查看次数

标签 统计

r ×3

aggregate ×1

concatenation ×1

dplyr ×1

r-faq ×1

vector ×1