我有2个向量
v1 <- c(164,38,20,19,163,22,21,4)
v2 <- c(0,21,164,60,59,58,57,22,5,3,164,38,22,20,4,164,38,20,19,3,4,19,20,164,21,3,4,19,22,20,164,163,20,19,3)
我想计算向量2中向量1中数字的出现。我尝试使用循环来执行此操作,但是由于表的格式,它无法正常工作。
a<-table(v2)
occurrence<-numeric()
for(i in v1){
occurrence[i]<-a[names(a)==v1[i]]
}
occurSum<-sum(occurrence)
您是否知道一种最好不使用循环的方法?
也许你正在寻找类似的组合table
和%in%
:
> table(v2[v2 %in% v1])
4 19 20 21 22 38 163 164
3 4 5 2 3 2 1 5
或者,根据您的尝试,您可以尝试:
tv2 <- table(v2)
tv2[match(v1, names(tv2))]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句