我有一个包含公司名称列的数据框。我想创建一个新的列,它是名称的模糊/规范化版本(可能使用正则表达式来删除后缀,例如“corporation”,inc“和”llc“以及类似”the“的前缀)。
name <- c("Microsoft", "Apple, Inc.", "Youtube, LLC", "Huffington Post")
companies <- data.frame(name)
我希望公司$ canonicalized_name返回
"microsoft", "apple", "youtube", "huffington post"
如何在R?
中编写此正则表达式模式答案 0 :(得分:1)
我不知道应该将哪些规则用于规范化您的数据,但如果您只想(a)删除逗号后的所有内容,然后将字符串转换为小写(就像您在示例中所做的那样),可以例如使用
执行此操作library(dplyr)
library(stringr)
name <- c("Microsoft", "Apple, Inc.", "Youtube, LLC", "Huffington Post")
companies <- data.frame(name) %>%
dplyr::mutate(canonicalized_name = stringr::str_replace(name, ",.*", "") %>% tolower)
companies
# name canonicalized_name
# 1 Microsoft microsoft
# 2 Apple, Inc. apple
# 3 Youtube, LLC youtube
# 4 Huffington Post huffington post