首页 > 解决方案 > 如何使用R在新向量中返回向量中整数出现次数的计数

问题描述

R 的新手。我见过很多类似的问题,其中表用于计算出现次数,但我想为 vector_1 中的每个整数(例如 1 到 10)创建一个新向量,其中出现的次数vector_1 中的整数在vector_2 中检查,然后在第三个vector_3 中返回。

期望的结果:

vector_1 <- c(1:10)
vector_2 <- c(3, 4, 4, 5, 7, 9, 10)
vector_3 <- c(0, 0, 1, 2, 1, 0, 1, 0, 1, 1)

我尝试过使用 for 循环,例如:

for (i in 1:10) {
for (j in vector_2) {
print(i) <- vector_3
}
}

显然这段代码不起作用,但我只是没有找到一种对向量之间的出现求和的好方法。欢迎任何指导或替代方法。

*编辑:我见过的类似问题的大多数答案都使用表格来计算vector_2中的出现次数;我没有遇到比较两个向量然后输出结果的问题。

标签: rloopsfor-loopvector

解决方案


你的代码对我来说没有意义。无论如何,您可以轻松地将向量 1 中的每个值与向量 2 中的每个值使用outer. rowSums然后可以给你所需的计数。

vector_1 <- c(1:10)
vector_2 <- c(3, 4, 4, 5, 7, 9, 10)
rowSums(outer(vector_1, vector_2, "=="))
#[1] 0 0 1 2 1 0 1 0 1 1

推荐阅读