dplyr:根据“col”分隔自动名称“into”-columns

时间:2015-10-15 13:39:03

标签: r dplyr tidyr

假设我有一个数据帧:

require(dplyr)
df <- data.frame(COL1 = c("a1 a2 a3", "b1 b2 b3", "c1 c2 c3"), 
                 COL2 = c("x", "y", "z"),
                 COL3 = c("1", "2", "3"))

我希望结果是

  COL1_1 COL1_2 COL1_3 COL2 COL3
1     a1     a2     a3    x    1
2     b1     b2     b3    y    2
3     c1     c2     c3    z    3

我现在要做的是

df %>%
  separate(col = COL1, sep = " ", into = c("COL1_1", "COL1_2", "COL1_3"))

有没有办法自动化表达式的into部分?

类似的东西使用原始列名COL1并将其与下标_i连接,其中i是“子列”。该方法需要自动适应不同数量的“子列”,例如a1, a2, a3,..., an

1 个答案:

答案 0 :(得分:1)

可以使用cSplit

自动执行此操作
library(splitstackshape)
 cSplit(df, 'COL1', ' ')