【问题标题】:Cleaning names in RR中的清洁名称
【发布时间】:2022-08-17 00:47:59
【问题描述】:

嗨,我有一列有名字。它的名称格式为: c(\"Tom\", \"Tom Turner\", \"Dr. Tom Turner\", \"R. Tom Turner\", \"J Tom Turner\", \"Jr. Tom Turner\")。 我只想提取名字,但由于名称上的前缀,我不知道如何以一种简单的方式进行操作。如果您有任何建议,请告诉我。

  • 你试过什么?如果没有前缀,您将如何提取名字?

标签: r


【解决方案1】:

这是一种方法:

library(magrittr) # for %>% 

dirty_names  <- c(
    "Tom",
    "Tom Turner",
    "Dr. Tom Turner",
    "R. Tom Turner",
    "J Tom Turner",
    "Jr. Tom Turner"
)

dirty_names   %>% 
    # Remove first word if it ends with . e.g. Dr., Jr., R.
    sub("^\\w+\\.", "", .)   %>% 
    trimws()  %>% 
    # Remove first word if it is one letter e.g. J
    sub("^[A-Za-z] ", "", .)    %>% 
    # Delete everything after first word
    sub("(\\w+).*", "\\1", .)
# [1] "Tom" "Tom" "Tom" "Tom" "Tom" "Tom"

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    相关资源
    最近更新 更多