0

我在将特殊内容与数据框中的变量分开时遇到问题。我的数据框的结构是这样的:

ID   Code    Mixture
001  101ABC    BD
002  021DPA    AA
003  FCA123    IO

我的问题是code变量,它有一个数字部分和一个字符部分,我试图创建这样的东西:

ID   Code    Mixture  v1   v2   V3
001  101ABC    BD     101  ABC  BDABC
002  021DPA    AA     021  DPA  AADPA
003  FCA123    IO     123  FCA  IOFCA

我想创建三个新变量v1v2v3v1是 的数字部分Codev2是 的字符部分, 是CodeV3之间的Mixture链接v2。R中是否有任何命令来创建它。非常感谢。

4

1 回答 1

0

要提取字符串的一部分,请使用正则表达式:在 R 中,键入help(regex)help(grep)获取指令。

> test=data.frame(ID=1:3,Code=c("101ABC","021DPA","FCA123"),Mixture=c("BD","AA","IO"))
> test$v1=gsub("[A-Z]*","",test$Code) # this returns the Code column with capital letters removed
> test$v2=gsub("[0-9]*","",test$Code)
> test$v3=paste(test$Mixture,test$v2,sep="")
> print(test)
  ID   Code Mixture  v1  v2    v3
1  1 101ABC      BD 101 ABC BDABC
2  2 021DPA      AA 021 DPA AADPA
3  3 FCA123      IO 123 FCA IOFCA

(使用stringr包可能有一个更简洁的解决方案,但我自己没有使用过 stringr。)

于 2013-08-03T02:59:20.363 回答