这里有一个复杂的方法:
A = B = list(1, 2, c(1,2))
outer(A, B, function(a,b) sapply((Vectorize(`%in%`))(a,b),any) )
# [,1] [,2] [,3]
#[1,] TRUE FALSE TRUE
#[2,] FALSE TRUE TRUE
#[3,] TRUE TRUE TRUE
这里有一个简单的方法:
eg <- expand.grid(A,B)
matrix(
mapply(function(x,y) {any(x %in% y)}, x = eg$Var1, y = eg$Var2 ), nrow = length(A), ncol = length(B)
)
(只是为了好玩:)
matrix(
mapply(function(x,y) {length(intersect(x, y)) != 0}, x = eg$Var1, y = eg$Var2 ), nrow = length(A), ncol = length(B)
)