#r #i&raph
#r #i&raph
Вопрос:
Я хотел бы измерить ассортативность списка сетей. Вот как я сгенерировал список.
nodes <- data.frame("Nodes" = 1:22,
"Type" = c(rep(1, 18), rep(0, 4)) # for measurin& assortativity
set.seed(1)
nwl <- list()
for (x in seq_len(1000L)) {
Start = 22, 500, replace=TRUE)
End = 22, 500, replace=TRUE)
df = data.frame(Start, End)
nwl[[x]]= &raph_from_data_frame(df,
vertices = nodes,
directed=TRUE)
}
Я хотел бы применить что-то подобное assortativity(network, V(network)$Type, directed =T)
в sapply()
функции для моего списка.
Я пробовал sapply(nwl, V(nwl)$Type, directed =T)
, sapply(nwl, sapply(nwl, V)$Type, directed = T)
и sapply(nwl, sapply(nwl, V, $Type), directed = T)
.
Если есть лучший способ сделать это без sapply
, я буду благодарен и за это.
Ответ №1:
Если я вас правильно понял, вы хотели бы просмотреть список сетей nwl
и применить assortativity
-функцию. В базе R этого можно достичь следующим образом:
sapply(nwl, function(network) assortativity(network, V(network)$Type, directed =T))
Здесь я передаю анонимную функцию в, sapply
которая строится вокруг assortativity
. Более интуитивный способ и более близкий к вашему подходу, это использовать map
из purrr
пакета:
purrr::map_dbl(nwl, ~ assortativity(.x, V(.x)$Type, directed = T))
Это позволяет вам напрямую вставлять .x
в качестве заполнителя для сети (указанной в аргументе nwl
). Я бы не знал, как это можно сделать, используя базу R.
Результат должен быть эквивалентным независимо.
Комментарии:
1. Большое вам спасибо! Я использую
purrr
предоставленное вами пакетное решение.