R - 创建表,%中的向量包含在另一个向量中

时间:2018-02-20 14:22:24

标签: r

我有许多包含一组数字的向量。

e.g:

v1 <- c(15,12,50,2007,1828)
v2 <- c(50,2007,11,8)

在下一步中我想看看在向量1中包含多少向量2的百分比

sim <- length(which(v2%in%v1 ==T)) / length(v2)

我为此创建了一个for循环,检查v1与v2,v3,v4 ....然后v2与v1,v3,4 ... 如果sim值大于10%,我想在表中输入。

由于向量的数量~1000。for循环正在逐渐变长。 还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

您应该使用set operator intersect

首先,计算两个向量的交集

shared <- intersect(v1,v2)

接下来,计算v2

中共享元素的百分比
sim <- length(shared)/length(v2)

如果您在R命令行中输入?intersect,您会看到还有其他有用的选项,例如unionsetdiff