在网络中使用字符串作为函数参数r

时间:2019-01-09 05:44:54

标签: r string graph igraph purrr

我正在尝试编写一个函数,该函数在我的工作空间中将给定后缀的“一系列操作应用于多个图形”

让我们说 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")

1 个答案:

答案 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
相关问题