我在数据帧中有一个列,它是状态代码的组合,例如TX和一些id。
GaID
TX1
TX2
NJ2
我想做什么:
State, GaID
TX,TX1
TX,TX2
NJ,NJ2
我查找了分割功能,但无法弄清楚如何分割字母数字字符串
答案 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)