相关疑难解决方法(0)

使用dplyr按组连接字符串

我有一个看起来像这样的数据框

> data <- data.frame(foo=c(1, 1, 2, 3, 3, 3), bar=c('a', 'b', 'a', 'b', 'c', 'd'))
> data
  foo bar
1   1   a
2   1   b
3   2   a
4   3   b
5   3   c
6   3   d
Run Code Online (Sandbox Code Playgroud)

我想创建一个新列bars_by_foo,它是bar by foo的值的串联.所以新数据应如下所示:

  foo bar bars_by_foo
1   1   a          ab
2   1   b          ab
3   2   a           a
4   3   b         bcd
5   3   c         bcd
6   3   d         bcd
Run Code Online (Sandbox Code Playgroud)

我希望以下内容有效:

p <- function(v) {
  Reduce(f=paste, x = v)
}
data %>% …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

如果值不同,则将列值折叠为一

我有一个 df ,如下所示:

ID   LOC
1     A
1     A
2     A
2     B
3     A
3     A
3     A
4     A
4     B
4     C
Run Code Online (Sandbox Code Playgroud)

我想做的是将 LOC 值折叠为每个 ID 一行,如果它们相同,则将其保留为一个值,所以我的输出将是:

ID   LOC
1     A
2     A + B
3     A
4     A + B + C
Run Code Online (Sandbox Code Playgroud)

现在我正在使用:

group_by(ID) %>%
mutate(concat_LOC = paste0(LOC, collapse = " + ")) 
Run Code Online (Sandbox Code Playgroud)

它连接所有值,即使它们相同

r dplyr

3
推荐指数
1
解决办法
683
查看次数

标签 统计

dplyr ×2

r ×2