我正在尝试编写一个函数,该函数在我的工作空间中将给定后缀的“一系列操作应用于多个图形” ;
让我们说 name_g ,但是我无法使该函数正确识别字符串。我尝试了其他帖子中提出的解决方案,但通常会遇到错误。
“ .f(.x [[i]],...)中的错误:使用替换和eval时不是图形对象”
library(igraph)
library(igraphdata)
library(purrr)
data(karate)
data(kite)
data(immuno)
karate_g <- karate
kite_g <- kite
immuno_g <- immuno
foo <- function(x){
all_networks <- mget(ls(pattern = x))
all_networks %>%
map(cluster_fast_greedy) %>%
map(sizes) %>%
map(max)
}
foo("_g")
答案 0 :(得分:1)
您需要参考正确的环境:
foo <- function(x){
all_networks <- mget(ls(pattern = x, pos= 1L), envir = as.environment(1L))
all_networks %>%
map(cluster_fast_greedy) %>%
map(sizes) %>%
map(max)
}
foo("_g")
# $immuno_g
# [1] 320
# $karate_g
# [1] 18
# $kite_g
# [1] 4