如何在 R 中使用正则表达式创建新的规范化公司名称列?
How do I use regex in R to create a new column of canonicalized company names?
我有一个包含公司名称列的数据框。我想创建一个新列,它是名称的 fuzzy/canonicalized 版本(可能使用正则表达式去除 "corporation, "inc" 和 "llc" 等后缀以及 "the" 等前缀) .
name <- c("Microsoft", "Apple, Inc.", "Youtube, LLC", "Huffington Post")
companies <- data.frame(name)
我想要公司$canonicalized_name return
"microsoft", "apple", "youtube", "huffington post"
如何在 R 中编写此正则表达式模式?
我不知道应该应用什么规则来规范化您的数据,但如果您只想 (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
我有一个包含公司名称列的数据框。我想创建一个新列,它是名称的 fuzzy/canonicalized 版本(可能使用正则表达式去除 "corporation, "inc" 和 "llc" 等后缀以及 "the" 等前缀) .
name <- c("Microsoft", "Apple, Inc.", "Youtube, LLC", "Huffington Post")
companies <- data.frame(name)
我想要公司$canonicalized_name return
"microsoft", "apple", "youtube", "huffington post"
如何在 R 中编写此正则表达式模式?
我不知道应该应用什么规则来规范化您的数据,但如果您只想 (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