我有一个像这样的矩阵(1000 x 2830):
9178 3574 3547
160 B_B B_B A_A
301 B_B A_B A_B
303 B_B B_B A_A
311 A_B A_B A_A
312 B_B A_B A_A
314 B_B A_B A_A
并且我想获得以下内容(复制名称和拆分每列的每个元素):
9178 9178 3574 3574 3547 3547
160 B B B B A A
301 B B A B A B
303 B B B B A A
311 A B A B A A
312 B B A B A A
314 B B A B A A
我尝试使用
strsplit
,但收到错误消息,因为这是一个矩阵,而不是字符串。您能否提供一些解决此问题的想法? 最佳答案
这是一个使用dplyr
(对于bind_cols
)和tidyr
(对于separate_
)以及来自基数R的lapply
的选项。它假定您的数据是一个data.frame(即,您可能需要先将其转换为data.frame):
library(dplyr)
library(tidyr)
lapply(names(df), function(x) separate_(df[x], x, paste0(x,"_",1:2), sep = "_" )) %>%
bind_cols
# X9178_1 X9178_2 X3574_1 X3574_2 X3547_1 X3547_2
#1 B B B B A A
#2 B B A B A B
#3 B B B B A A
#4 A B A B A A
#5 B B A B A A
#6 B B A B A A