首页 > 解决方案 > 在R中的多列中分离一列

问题描述

这是我的数据:

df1<-read.table(text= "Group
11Z-23456
12B-10000
22M-2000
12M-1100
33G-100",header=TRUE)

我想得到这个数据:

A   B   C   Code
1   1   Z   23456
1   2   B   10000
2   2   M   2000
1   2   M   1100
3   3   G   100

正如您从我的数据中看到的,我想将 Group 中的值分开这只是一个小样本,但请考虑大样本。

标签: r

解决方案


使用`data.table:

library(data.table)
setDT(df1)
df1[, c("ABC", "Code") := tstrsplit(Group, "-")]
df1[, c("A", "B", "C") := tstrsplit(ABC, "")]
df1[, c("ABC", "Group") := NULL]
df1
#     Code A B C
# 1: 23456 1 1 Z
# 2: 10000 1 2 B
# 3:  2000 2 2 M
# 4:  1100 1 2 M
# 5:   100 3 3 G

推荐阅读