对向量取交集,直接用intersect函数

  1. > a = c(1,3,4,5)
  2. > b = c(1,2,4,6,8)
  3. > d = c(1,3,4,7,9)
  4. > intersect(a,b)
  5. [1] 1 4
  6. # 多个向量取交集的方法一
  7. > data = list(v1= a,v2 = b,v3 = d)
  8. > inters1 = Reduce(intersect,data); inters1
  9. [1] 1 4
  10. # 多个向量取交集的方法一
  11. > inters2 = intersect(intersect(a,b),d);inters2
  12. [1] 1 4

对数据框取交集,用dplyr 包里的intersect函数

  1. > library(dplyr)
  2. > 直接利用dplyr包里面的intersect函数对数据框取交集
  3. > inters3 =intersect(df1,df2)
  4. > #保存交集结果
  5. > write.table(inters3file="intersect2.txt",quote=F,row.names = F,sep="\t")