尝试将 R tibble 中的多行字符串组合成单行字符串

问题描述 投票:0回答:2
data <- tibble(
  x = c(1, 1, 1, 2, 2),
  y = c("a", "b", "c", "b", "d")
  )

dataf <- tibble(
  x = c(1, 2),
  y = c("a, b, c", "b, c")
  )

我正在使用“tidyverse”包处理一张看起来类似于“data”的表,我需要将所有 x = 1 的行放在一个 y 值中,该值是一个字符串,值用逗号分隔为在“dataf”中。

我尝试使用 mutate 来让它工作,但我不知道如何解决这个问题

r tidyverse rstudio
2个回答
0
投票

你可以做

data %>% summarise(y = paste(y, collapse = ', '), .by = x)
#> # A tibble: 2 x 2
#>       x y      
#>   <dbl> <chr>  
#> 1     1 a, b, c
#> 2     2 b, d  

0
投票
# Group by 'x' and concatenate 'y' values with commas
dataf <- data %>%
  group_by(x) %>%
  summarize(y = paste(y, collapse = ", "))

此代码按“x”列对数据进行分组,并使用 summarise 使用paste(y,collapse = ",") 连接每个组内的“y”值。结果是一个小标题,其中具有相同“x”值的行被组合成一行,“y”列中带有逗号分隔的字符串。

输出将如下所示:

# A tibble: 2 × 2
      x y        
  <dbl> <chr>    
1     1 a, b, c  
2     2 b, d
© www.soinside.com 2019 - 2024. All rights reserved.