这对我来说很难解释,因此我仅举一个例子。我在下面有两个向量(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条记录。任何帮助表示赞赏!
最佳答案
您可以将outer
与colSums
结合使用:
colSums(outer(a, b, `==`))
[1] 0 0 2 1 1 0 0
关于r - 在R个计数中创建一个向量,计算每个元素出现在另一个向量中的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57079485/