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 来让它工作,但我不知道如何解决这个问题
你可以做
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
# 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