下面的for循环给出了一个错误,显示为Error in nenv[i]/nref[i] : non-numeric argument to binary operator。
library(tm)
library(stringr)
mydata = data.frame(id=c(1,2,3),
text=c("This is text mining exercise;Meta-analysis in envtal science",
"Text analysis is bit confusing;This is how the analysis works",
"Hint on this text analysis?;Highly appreciated!"))
multiwords<-c("Text","analysis","bit confusing")
txt = frq = nenv = prnt = list()
for(i in 1:length(mydata$id)){
nref[i] = lengths(strsplit(as.character(mydata$text[i]),";"))
txt[i] = str_extract_all(mydata$text[i],str_c(multiwords, collapse="|"))
frq[i] = lapply(txt[i],table)
nenv[i] = sum(unlist(frq[i]))
prnt[i] = nenv[i]/nref[i]*100
}非常感谢您的帮助。谢谢!
发布于 2020-05-17 07:20:42
我猜问题在于nenv[i]和nref[i]是列表的(元素)。您可以通过以下方式将它们转换为数字
prnt[i] = as.numeric(nenv[i])/as.numeric(nref[i])*100这取决于您需要的类型。或者,您可以对它们执行unlist。
https://stackoverflow.com/questions/61843666
复制相似问题