在 R 中格式化不寻常的(名字和姓氏)字符串
Formatting unusual (First and last Name) character strings in R
我的字符串如下所示:
MLB$Name[1:6]
[1] "Wil Myers" "Cory Spangenberg*" "Alexei Ramirez #" "Yangervis Solarte# (15-day dl)" "Melvin Upton Jr." "Travis d'Arnaud"
如您所见,这些字符串包含括号 ()
、星号 *
和其他不常见的字符(#
、d'Arnaud
)。我正在从一个棒球网站上抓取这些内容,但它们并没有以友好的可用方式出现。我想要捕获的只是名字和姓氏,名字被缩写(后面有一个句点),然后是姓氏。我不想要任何常用字符,或者名称
之后 (15-day dl)
的 Jr.
我希望我的字符串看起来像这样:
MLB$NameFormatted[1:6]
[1] "W. Myers" "C. Spangenberg" "A. Ramirez" "Y. Solarte" "M. Upton" "T. d'Arnaud"
我之前问的一个问题得到了一个答案,它能够成功地获取我的只有名字和姓氏的字符串,并将它们格式化成你在上面看到的这种形式,但是,额外的奇怪字符和诸如 [= 14=、#
和 15-day dl
导致此解决方案出现问题(预期)。以下代码仅用于格式化名字和姓氏:
sub("^(.)\S+(\s+.*)$", "\1.\2", MLB$Names)
非常感谢您的帮助 - 我是 R 的新手,我正在尝试用棒球统计数据做一些非常有趣的事情。感谢您的宝贵时间!
这样做:
MLB$NameFormatted = sub("([A-Za-z])[A-Za-z']* ([A-Za-z' -]+[A-Za-z]+).*",'\1. \2', MLB$Name)
...以及正确处理"Ryan Rowland-Smith"和"Valerio de los Santos"
等麻烦制造者
示例输出:
[1] "W. Myers" "C. Spangenberg" "A. Ramirez " "Y. Solarte" "M. Upton Jr"
[6] "T. d'Arnaud" "R. Rowland-Smith" "V. de los Santos"
我的字符串如下所示:
MLB$Name[1:6]
[1] "Wil Myers" "Cory Spangenberg*" "Alexei Ramirez #" "Yangervis Solarte# (15-day dl)" "Melvin Upton Jr." "Travis d'Arnaud"
如您所见,这些字符串包含括号 ()
、星号 *
和其他不常见的字符(#
、d'Arnaud
)。我正在从一个棒球网站上抓取这些内容,但它们并没有以友好的可用方式出现。我想要捕获的只是名字和姓氏,名字被缩写(后面有一个句点),然后是姓氏。我不想要任何常用字符,或者名称
(15-day dl)
的 Jr.
我希望我的字符串看起来像这样:
MLB$NameFormatted[1:6]
[1] "W. Myers" "C. Spangenberg" "A. Ramirez" "Y. Solarte" "M. Upton" "T. d'Arnaud"
我之前问的一个问题得到了一个答案,它能够成功地获取我的只有名字和姓氏的字符串,并将它们格式化成你在上面看到的这种形式,但是,额外的奇怪字符和诸如 [= 14=、#
和 15-day dl
导致此解决方案出现问题(预期)。以下代码仅用于格式化名字和姓氏:
sub("^(.)\S+(\s+.*)$", "\1.\2", MLB$Names)
非常感谢您的帮助 - 我是 R 的新手,我正在尝试用棒球统计数据做一些非常有趣的事情。感谢您的宝贵时间!
这样做:
MLB$NameFormatted = sub("([A-Za-z])[A-Za-z']* ([A-Za-z' -]+[A-Za-z]+).*",'\1. \2', MLB$Name)
...以及正确处理"Ryan Rowland-Smith"和"Valerio de los Santos"
等麻烦制造者示例输出:
[1] "W. Myers" "C. Spangenberg" "A. Ramirez " "Y. Solarte" "M. Upton Jr"
[6] "T. d'Arnaud" "R. Rowland-Smith" "V. de los Santos"