【发布时间】:2021-10-19 05:06:15
【问题描述】:
我有一个数据框,其中包含一个包含由客户手写的经纪人名称的列,我想通过该列将手写的经纪人名称替换为我在列表中拥有的唯一经纪人名称。
我的数据的 sn-p 如下所示:
Data <- data.frame(Date = c("01-10-2020", "01-10-2020", "01-11-2020", "01-11-2020"),
Broker = c("RealEstate", "REALestate", "Estate", "ESTATE"))
我的唯一经纪人名称列表如下所示:
Unique_brokers <- list("REALESTATE", "ESTATE")
基于某种模式识别,我想用我的Unique_brokers 列表中的唯一代理名替换我的Data 数据框中的代理名。
我已经部分地使用case_when 和str_detect 的组合手动完成了这项工作,分别来自dplyr 和stringr。
Data <- Data %>%
mutate("UniqueBroker" = case_when(str_detect(Broker, regex("realestate", ignore_case=T))~"REALEASTE",
str_detect(Broker, regex("estate", ignore_case=T))~"ESTATE",
TRUE~"OTHER"))
但是,在约 80.000 条记录中,超过 100 个唯一经纪人和超过 12500 个手写经纪人名称组合,这是相当耗时的。
我想知道是否可以使用 mapply 进行替换,但是到目前为止我还没有做到。
非常感谢!
编辑
Data$Broker由拼写、包含信息等方面的各种组合组成。
例如
Data$Broker <- c("Real-estate", "Real estate", "Real estate department 788", "Michael / REAL Estate")
【问题讨论】:
-
这些答案对您有帮助吗?如果是这样,请考虑支持他们并接受一个。
标签: r string dplyr stringr mapply