regex 当并非所有组件都有字母时,将字符串拆分为字母组件和数字组件[duplicate]

kxeu7u2r  于 2022-12-14  发布在  其他
关注(0)|答案(2)|浏览(116)

此问题在此处已有答案

split character data into numbers and letters(8个答案)
17小时前就关门了。
我搜索了stackoverflow,但没有找到答案。如果有人问这个问题,很抱歉...
我有一串数字,有些数字有字母...

x = c("1", "12", "14A", "12B", "6")

我想把数字部分分开,得到两个单独的列,一个是数字,一个是字母...

x = c(1, 12, 14, 12, 6)
y = c(NA, NA, "A", "B", NA)

会很感激你的帮助

flseospp

flseospp1#

可以使用tidyr的函数extract

library(tidyr)
data.frame(x) %>%
  extract(x, into = c("x","y"), regex = "(\\d+)([A-Z]+)?")
   x y
1  1  
2 12  
3 14 A
4 12 B
5  6
yftpprvb

yftpprvb2#

使用stringr中的str_extract,我们可以尝试:

library(stringr)

y <- str_extract(x, "\\D+")
x <- str_extract(x, "\\d+")

相关问题