r基于字母数字字符拆分列

时间:2014-01-23 00:01:26

标签: r

我在数据帧中有一个列,它是状态代码的组合,例如TX和一些id。

GaID
TX1
TX2
NJ2

我想做什么:

State, GaID
TX,TX1
TX,TX2
NJ,NJ2

我查找了分割功能,但无法弄清楚如何分割字母数字字符串

2 个答案:

答案 0 :(得分:1)

我能想到的最简单的方法是:

dat <- data.frame(GaID = c('TX1', 'TX2', 'NJ2'))

dat[, "State"] <- unlist(strsplit(as.character(dat$GaID), "\\d"))
dat[, 2:1]

##   State GaID
## 1    TX  TX1
## 2    TX  TX2
## 3    NJ  NJ2

答案 1 :(得分:1)

如果您知道字符串开头的条件是两个字符,则以下内容可能会更快(但只有在您拥有大型数据集时才会注意到这一点):

substr

substr(dat$GaID, 1, 2)

sub

sub("(^[A-Z]{2}).*", "\\1", dat$GaID)