我有许多包含一组数字的向量。
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循环正在逐渐变长。 还有其他选择吗?
答案 0 :(得分:1)
您应该使用set operator intersect
首先,计算两个向量的交集
shared <- intersect(v1,v2)
接下来,计算v2
sim <- length(shared)/length(v2)
如果您在R命令行中输入?intersect
,您会看到还有其他有用的选项,例如union
和setdiff