我们可以用
Vectorize
关于函数
f1 <- Vectorize(function(x, y) identical(get(x), get(y)))
outer(name_df, name_df, f1)
# [,1] [,2] [,3] [,4] [,5]
#[1,] TRUE TRUE FALSE FALSE FALSE
#[2,] TRUE TRUE FALSE FALSE FALSE
#[3,] FALSE FALSE TRUE TRUE FALSE
#[4,] FALSE FALSE TRUE TRUE FALSE
#[5,] FALSE FALSE FALSE FALSE TRUE
或使用
tidyverse
具有
crossing
library(tidyverse)
crossing(name_df, name_df) %>%
mutate(Equal = map2_lgl(mget(name_df, envir = .GlobalEnv),
mget(name_df1, envir = .GlobalEnv),
identical)) %>%
spread(name_df1, Equal) %>%
column_to_rownames('name_df')