1

我在 R 中有一个数据框,如下面的第一个表所示。我想按字母顺序排列每个单元格中指定列(Q1、Q2 等)的逗号分隔值,以便生成如下表第二个所示的数据框。

ID 第一季度 第二季度
1 阿尔法,查理,苹果 B,D,C,A
2 祖鲁,三角洲,布拉沃 D,A,C,B
ID 第一季度 第二季度
1 阿尔法,苹果,查理 A B C D
2 布拉沃,三角洲,祖鲁 A B C D
4

1 回答 1

1

我们可以拆分两列,执行sorting 然后paste返回

library(dplyr)
library(purrr)
df1 %>%
    mutate(across(c(Q1, Q2), ~ map_chr(strsplit(., ","), ~ toString(sort(.x)))))

-输出

id                    Q1         Q2
1  1 alpha, apple, charlie A, B, C, D
2  2    bravo, delta, zulu A, B, C, D

数据

df1 <- structure(list(id = 1:2, Q1 = c("alpha,charlie,apple", "zulu,delta,bravo"
), Q2 = c("B,D,C,A", "D,A,C,B")), class = "data.frame", row.names = c(NA, 
-2L))
于 2021-08-30T16:45:20.277 回答