R:如何使用 tidyr 将字符串分成三列

问题描述 投票:0回答:1

这是我的数据中的一列的样子:

dat <- data.frame(
A = c("M24656811 M24677722 GREEN,SMITH34/M/B", "M24654999 DOE,JANE V37/F/W", "M24333107 DOE,JOHN24/M/B"))

我想将 A 列分成四列: enter image description here

请注意Jane 和V37/F/W 之间有一个空格。我非常感谢任何帮助实现这一目标。谢谢。

我尝试使用正则表达式分离()和提取()函数,但没有任何效果。我是正则表达式的初学者。

r string tidyr separator strsplit
1个回答
0
投票

在基础 R 中你可以使用

strcapture
:

strcapture("(\\w*) ?(M2\\d{7}) (\\w+,[^0-9 ]+) ?(.*)", dat$A,
            list(B = "", C = "", name = "", D = ""))

          B         C        name       D
1 M24656811 M24677722 GREEN,SMITH  34/M/B
2           M24654999    DOE,JANE V37/F/W
3           M24333107    DOE,JOHN  24/M/B
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.