我正在创建一个数据集来使用正则表达式计算不同单词组合的聚合值。每行都有一个唯一的正则表达式值,我想检查另一个数据集并找到它出现在其中的次数。
第一个数据集 (df1) 如下所示:
word1 word2 pattern
air 10 (^|\\s)air(\\s.*)?\\s10($|\\s)
airport 20 (^|\\s)airport(\\s.*)?\\s20($|\\s)
car 30 (^|\\s)car(\\s.*)?\\s30($|\\s)
我要与之匹配的另一个数据集(df2)看起来像
sl_no query
1 air 10
2 airport 20
3 airport 20
3 airport 20
3 car 30
我想要的最终输出应该看起来像 word1 word2 total_occ air 10 1 airport 20 3 car 30 1
我可以通过在 R 中使用 apply 来做到这一点
process <-
function(x)
{
length(grep(x[["pattern"]], df2$query))
}
df1$total_occ=apply(df1,1,process)
但是由于我的数据集非常大,因此需要花费一些时间。
我发现“parallel”包的“mclapply”功能可用于在多核上运行此类东西,为此我尝试先运行 lapply。它给了我错误说
lapply(df,process)
x[, "pattern"] 中的错误:维数不正确
请让我知道我应该进行哪些更改才能正确运行 lapply。