【发布时间】:2021-02-18 05:49:21
【问题描述】:
我正在使用 for 循环 来查找和替换数据框中的一些文本值。我的 findreplace 表有 1431 个模式,我的主 DF 包含 3.5 条 lac 记录。现在,我正在寻找一些更快的方法,以减少循环的运行时间并更快地完成工作。目前需要 33 分钟。
dfy<-data.frame(fuzzyname=c("AU HOUSING","BAJAJ AUTO","INDOSTAR CAPITAL","FULLLERTON INDIA","LIC HOUSING FINANCE","CAPITALFIRST"))
dfy[]<-sapply(dfy, as.character)
df_pat<-data.frame(find=c("AUTO","CAPITAL","LIC"))
df_rep<-data.frame(replace=c("AUTOMOBILES","CAP","LIFE CORPORATION OF INDIA"))
for(i in 1:nrow(df_pat)) {
dfy$fuzzyname <- gsub(df_pat$find[i],df_rep$replace[i],dfy$fuzzyname,perl=T)
print(paste(i,df_pat$find[i],sep = "----"))
}
Please help me out.
【问题讨论】:
标签: r performance lapply gsub sapply