我正在尝试创建一个new变量,该变量将存储第2个,第3个和第4个以及每个的最后三位数字tx。例如,第一个数字tx将是812500new
我做了这个
tx<-c(4812129004534500, 6430650557835, 579900098554, 382183224511777, 49057595473648551, 64951444098766, 649544543781, 87567909876421)
new <- sapply(tx, function(x) substring(x, first=c(2,3,4), last=3))
Run Code Online (Sandbox Code Playgroud)
但是输出是不可取的。
gsub() 使用下面的正则表达式模式即可。
有什么作用:
它选择- ()括号之间的部分作为组。
-第一组是数字2、3和4-
第二组是最后三位数字
然后将所有内容替换为group1 + group2
gsub( "^\\d(\\d{3}).*(\\d{3}$)", "\\1\\2", tx )
[1] "812500" "430835" "799554" "821777" "905552" "495766" "495781" "756421"
Run Code Online (Sandbox Code Playgroud)