假设我有一个数据帧:
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
。
答案 0 :(得分:1)
可以使用cSplit
library(splitstackshape)
cSplit(df, 'COL1', ' ')