【3.4.2】合并数据框的列-unite

一、案例

浏览示例数据

mtcars

#将 vs 和 am 两列数据合并后,原数据列被删除了(如果想保留原数据列则通过 remove = FALSE 参数控制),新增了 vs_am 列,得到的结果如下

library(tidyr)

> mtcars
                     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2


> tidyr::unite(mtcars, "vs_am", vs, am)
                     mpg cyl  disp  hp drat    wt  qsec vs_am gear carb
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46   0_1    4    4
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02   0_1    4    4
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61   1_1    4    1
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44   1_0    3    1
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02   0_0    3    2
Valiant             18.1   6 225.0 105 2.76 3.460 20.22   1_0    3    1
Duster 360          14.3   8 360.0 245 3.21 3.570 15.84   0_0    3    4
Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00   1_0    4    2
Merc 230            22.8   4 140.8  95 3.92 3.150 22.90   1_0    4    2
Merc 280            19.2   6 167.6 123 3.92 3.440 18.30   1_0    4    4

个性化合并

如果在合并时想自定义连接符,可以通过参数 sep 控制,运行

> unite(mtcars, "vs_am", vs, am, sep = "ZSF", remove = FALSE)
                 mpg cyl  disp  hp drat    wt  qsec vs_am vs am gear carb
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46 0ZSF1  0  1    4    4
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02 0ZSF1  0  1    4    4
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61 1ZSF1  1  1    4    1
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44 1ZSF0  1  0    3    1
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02 0ZSF0  0  0    3    2
Valiant             18.1   6 225.0 105 2.76 3.460 20.22 1ZSF0  1  0    3    1

得到的结果如下,新增 vs_am 列,连接符为 ZSF,原数据列 vs 和 am 得以保存。

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn