R语言 按字母顺序排序后按行串联两列

lb3vh1jj  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(145)

大家好,我想创建第三列sorted_gene_pair,其中gene1和gene2是折叠的,用下划线隔开,但要确保基因是按字母顺序排列的。
这是我的数据框:

> dput(d)
structure(list(gene1 = c("SEC23A", "SAR1A", "COQ10B", "AP2A2", 
"CUL4A", "PITPNA"), gene2 = c("SEC23B", "SAR1B", "COQ10A", "AP2A1", 
"CUL4B", "PITPNB")), row.names = c(NA, -6L), class = "data.frame")

如果可能的话,我想要tidyverse解决方案。我目前正在尝试:

d %>% 
  mutate(sorted_gene_pair = paste(sort(c(gene1, gene2)), collapse = '_'))

但这是使用基因1和基因2的所有列而不是行方式。
预期成果是:

gene1  gene2 sorted_gene_pair
1 SEC23A SEC23B SEC23A_SEC23B
2  SAR1A  SAR1B SAR1A_SAR1B
3 COQ10B COQ10A COQ10B_COQ10A
4  AP2A2  AP2A1 AP2A1_AP2A2
trnvg8h3

trnvg8h31#

感谢您的意见,现在这是可行的:

d %>% 
  rowwise() %>% 
  mutate(sorted_gene_pair = paste(sort(c(gene1, gene2)), collapse = '_'))

相关问题