根据数字位置分割数字

Jul*_*lia 0 split r digits

我正在尝试创建一个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)

但是输出是不可取的。

Wim*_*pel 6

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)

  • @RonakShah终于……终于我比你快。不得不等待大约一年;-) (4认同)
  • 嗯,好人...即将发布`sub(“。{2}(。{3})。*(。{3} $)”,“ \\ 1 \\ 2”,tx)` (3认同)