目标是:(1)从data1
中提取多字/字符串,(2)用位于另一个数据集(data2
)中的其他字符串替换这些提取的单词。
library(stringr)
data1 <- data.frame(id=c(1,2,3),
text=c("This is text mining exercise text",
"Text analysis is bit confusing analysis",
"Hint on this text analysis?"))
data2 <- data.frame(mult1 = c("text","analysis","bit confusing"),
mult2 = c("A; B; C","A; D", "A; B; C; D"))
txt <- subf <- list()
pattern <- tolower(str_c(data2$mult1, collapse = "|"))
for(i in 1:length(data1$id)){
txt[[i]] <- unlist(str_extract_all(tolower(data1$text[i]), pattern))
j <- match(txt[[i]], data2$mult1) # Here is my problem
subf[[i]] <- data2$mult2[j]
}
如何在每次迭代中更改j
的值并在subf[[i]] <- data2$mult2[j]
中使用?非常感谢您的帮助。 Tnx!
变量j
没问题。循环中的最后一条语句是。默认情况下,R将文本解释为因素。因此,有两种方法可以解决它(或者至少接近解决方案)。