这是我的数据中的一列的样子:
dat <- data.frame(
A = c("M24656811 M24677722 GREEN,SMITH34/M/B", "M24654999 DOE,JANE V37/F/W", "M24333107 DOE,JOHN24/M/B"))
我想将 A 列分成四列:
请注意Jane 和V37/F/W 之间有一个空格。我非常感谢任何帮助实现这一目标。谢谢。
我尝试使用正则表达式分离()和提取()函数,但没有任何效果。我是正则表达式的初学者。
在基础 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