我正在解决一个问题,其中我必须有两个数据框数据和缩写,我想将数据中存在的所有缩写替换为它们各自的完整形式。到目前为止,我一直for-loops
在以下列方式使用
abb <- c()
for(i in 1:length(data$text)){
for(j in 1:length(AbbreviationList$Abb)){
abb <- paste("(\\b", AbbreviationList$Abb[j], "\\b)", sep="")
data$text[i] <- gsub(abb, AbbreviationList$Fullform[j], tolower(data$text[i]))
}
}
缩写数据框类似于下图,可以使用以下代码生成
Abbreviation <- c(c("hru", "how are you"),
c("asap", "as soon as possible"),
c("bf", "boyfriend"),
c("ur", "your"),
c("u", "you"),
c("afk", "away from keyboard"))
Abbreviation <- data.frame(matrix(Abbreviation, ncol=2, byrow=T), row.names=NULL)
名称(缩写)<- c(“abb”,“Fullform”)
并且数据只是一个数据框,其中 1 列在每行中都有文本字符串,也可以使用以下代码生成。
data <- data.frame(unlist(c("its good to see you, hru doing?",
"I am near bridge come ASAP",
"Can u tell me the method u used for",
"afk so couldn't respond to ur mails",
"asmof I dont know who is your bf?")))
names(data) <- "text"
最初,我有大约 1000 个观察值和大约 100 个缩写的数据框。因此,我能够运行分析。但现在数据已增加到近 50000 个,我在处理它时遇到了困难,因为有两个for-loops
这使得处理过程非常缓慢。您能否建议一些更好的替代方案for-loop
并举例说明如何在这种情况下使用它。如果这个问题可以通过矢量化方法更快地解决,那么请建议如何做到这一点。
谢谢您的帮助!