r - 在R个计数中创建一个向量,计算每个元素出现在另一个向量中的次数

标签 r

这对我来说很难解释,因此我仅举一个例子。我在下面有两个向量(a和b)。

a <- c("cat","dog","banana","yogurt","dog")
b <- c("salamander","worm","dog","banana","cat","yellow","blue")

我想要的是以下结果:
[1] 0 0 2 1 1 0 0 

其中结果的每个元素是b的每个元素出现在向量a中的次数。
do.call("c",lapply(b,function(x){sum(x == a)}))

这给了我想要的东西,但是我需要一个矢量化/更快的版本,因为我正在处理> 20,000条记录。任何帮助表示赞赏!

最佳答案

您可以将outercolSums结合使用:

colSums(outer(a, b, `==`))
[1] 0 0 2 1 1 0 0

关于r - 在R个计数中创建一个向量,计算每个元素出现在另一个向量中的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57079485/

相关文章:

r - R 中的参数在函数外部有效但在函数内部失败

R:将对象序列化到文本文件并再次返回

r - 从数据/系数创建 lm 对象

r - 来自 ggpol 的facet_share 创建了太大的边距

r - Quadprog R 中不兼容的类型

python - 如何在 Python 中捕获 rpy2.rinterface.RRuntimeError?

r - 使用 data.frame() 计算数据集的第一个四分位数,其中行号已在 R 中删除

R:通过键变量绑定(bind)列

r - 如何在 R 中的 heatmap.2 中为一组标签或分支着色

r - Shiny 的渲染UI错误