在R中一次合并两列

时间:2018-02-03 05:29:55

标签: r

我有一个包含127列和518行的数据框。现在我需要奇数和偶数列(从3开始)。

>data
Name id S1 S2 S3 S4 S5 S6
abc  1  A  A  C  C  G  G
abc  2  A  G  T  T  C  G
abc  3  G  C  T  A  A  C

我想要的输出是

>output
Name id S2 S4 S6  
abc  1  AA  CC  GG
abc  2  AG  TT  CG
abc  3  GC  TA  AC

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:3)

我们可以使用Map在对备用列进行子集化后执行此操作

res <- data.frame(data[1:2], Map(paste0, data[-(1:2)][c(TRUE, FALSE)], 
                  data[-(1:2)][c(FALSE, TRUE)]))
names(res)[3:5] <-  names(data)[3:8][c(FALSE, TRUE)]
res
#   Name id S2 S4 S6
#1  abc  1 AA CC GG
#2  abc  2 AG TT CG
#3  abc  3 GC TA AC