如何有效地计算R中列表中的匹配项?

Powege

我有一个整数向量列表,例如:

set.seed(1)

vec_list <- replicate(100, sample(1:10000000, size=sample(1:10000, 100)), simplify=FALSE)

还有一个整数向量,例如:

vec <- sample(1:10000000, size=10000)

如何计算出现在向量vec中的vec_list中每个向量中的整数数目我可以使用for循环来做到这一点。例如:

total_match <- rep(NA, length(vec_list))

for (i in 1:length(vec_list)){
  total_match[i] <- length(which(vec_list[[i]] %in% vec))
  print(i)
}

但是,我也尝试应用的列表和向量非常大,而且速度很慢。请提供有关如何提高性能的建议。

使用data.table更快,但是在没有匹配项的情况下不会返回0。例如:

DT <- data.table(repid=rep(1:length(vec_list), sapply(vec_list, length)), val=unlist(vec_list))
total_match2 <- DT[.(vec), on=.(val), nomatch=0L, .N, keyby=.(repid)]$N
chinsoon12

也许尝试:

DT <- setDT(stack(setNames(vec_list, 1:length(vec_list))))
DT[, x := +(values %in% vec)][, sum(x), keyby=.(ind)]$V1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有效地从列表中删除重复项

如何有效地删除列表中的连续重复项?

使用R有效地计算一列中单词列表的出现

如何有效地找到两个列表中匹配元素的索引

如何有效地弯曲列表中的项目?

如何有效地从列表中删除

如何有效地搜索列表中的项目?

如何有效地从R中的ngram标记列表中删除停用词

如何使用R中的列表条目有效地设置矩阵的值?

如何比较 2 个列表并有效地从 1 个列表中删除重复项?

更有效地将匹配列与data.table中的重复项合并

有效地删除元组列表中的部分重复项

当这些在字典列表中时,如何通过不同的接口值有效地计算 mac 值的出现次数?

有效地计算flink中的属性数量

如何有效地获取python列表中列表中项目的计数

如何使用python中的列表有效地排序列表列表

有效地比较两列中的列表

有效地在词典列表中查找值

有效地从 HashMap 中删除列表项

如何有效地计算R中稀疏矩阵的每一行的平方和?

如何有效地加载 ArrayCollection 中的最后一项?

用R中列表中的行有效地填充二维矩阵

如何有效地从访问位置列表中构造边缘列表?

python - 如何使用Python中的值列表有效地更新dict键值列表

有效地计算R中的百分等级

有效地计算R中的滚动行总和

当python中的相似元素时如何有效地组合列表中的元组

如何有效地匹配两个数据帧中的字符串

如何有效地计算字符串中字符频率的前缀和?