问题描述
我有2个数据集,其中一个包含500个不同的实体,其中测量了一些变量。另一个有500个文本,其中每个文本都属于第一个数据集中的实体。我想在这些文本中搜索3个关键字,并计算每个文本中出现总关键字的次数。
一些随机数据可以作为随机表示使用,关键字是向量,文本是包含文本的列表(我有一个列表,不知道我的示例列表在这里是否正确),而df是数据框加上我实体的变量:
keywords <- c("ab","cd","ef")
texts <- as.list("ab is ef when ef is ef","something something nothing","cd is cd is ab is ab and ef")
var1 <- c("area1","area2","area3")
var2 <- c("15","5","23")
df <- data.frame(var1,var2)
colnames(df) <- c("location","temperature")
正确的答案是关键字在第一个文本中出现4次,在第二个文本中出现0次,在第三个文本中出现5次。但是,当我尝试以下操作时,它将给出错误的输出:
df$count <- 0 # Store the results
# counting for all keywords
for(w in keywords){
df$count <-
df$count +
grepl(w,texts,ignore.case = T)
print(w)
}
df$count
预先感谢
解决方法
您的const createGlideRecord = () => {
return { /* ... */ }
}
const instance = createGlideRecord()
const { constructor } = instance
console.log(constructor) // Object
console.log(constructor.name) // "Object"
console.log(constructor === createGlideRecord) // false
是一个列表。有什么理由吗?而是使其成为向量。
您也可以更轻松地进行计数。也许尝试使用texts
软件包。那你可以做
stringr
如果您无法按照上述方式设置图案,也可以尝试
library(stringr)
keywords <- c("ab","cd","ef")
texts <- c("ab is ef when ef is ef","something something nothing","cd is cd is ab is ab and ef")
str_count(texts,"ab|cd|ef")
[1] 4 0 5