R如何利用循环实现多个向量交集(两两之间,三个,四个等多个向量)

R语言,请问如何实现多个向量之间取交集。非常感谢!

如何得到各个两两向量比较的交集数值,三、四、五、六个甚至许多个向量交集得到交集向量。例如以下六个向量,

a <- c(1,2,3,4)
b <- c(2,3,4,6,7)
d <- c(2,4,8,5,6)
e <- c(1,2,3,4,6,7)
f <- c(1,2,5,7,9,10,11)
g <- c(1,3,5,6,9,2,4)

如果想要得到以下结果,如何实现代码的简化,

dat1 <- intersect(a,b);dat2 <- intersect(a,d);dat3 <- intersect(a,e).....dat21 <- intersect(f,g)
dat_abd <- intersect(dat1,d);dat_abe <- intersect(dat3,b)......dat_efg <- intersect(dat21,e)
dat_abde <- intersect(dat_abd,e)................intersect_abdefg <- intersect(abdef,g)

可以看看reduce函数