Я сталкивался с вопросом о сохранении графиков и статистики из вложенных циклов в R. То, что у меня есть, это несбалансированные данные панели социальных сетей.В приведенном ниже примере он имеет сетевое соединение в 3 местах с 2001 по 2003 год. Я стремился генерировать сетевые графики вместе с некоторой статистикой за каждый год для каждого местоположения (поэтому девять графиков и девять статистических данных SNA из примера).Но я запутался в настройке контейнера результатов заранее, особенно когда цикл вложен.Я был бы очень признателен, если бы кто-нибудь мог помочь с этим.
> # import file
> el <- read.csv(file.choose(), header = TRUE )
> print(el) # example data
bname sname year loc
1 a b 2001 1
2 a c 2001 1
3 a b 2002 1
4 b c 2002 1
5 b e 2002 1
6 e a 2003 1
7 b a 2003 1
8 a c 2003 1
9 b e 2001 2
10 a c 2002 2
11 a b 2002 2
12 b c 2002 2
13 c e 2002 2
14 c e 2003 2
15 b e 2003 2
16 a b 2003 2
17 a b 2001 3
18 a c 2001 3
19 a e 2001 3
20 a d 2001 3
21 a b 2002 3
22 b c 2002 3
23 b c 2003 3
> # Import objects
> loc <- as.vector(unique(el$loc))
> year <- as.vector(unique(el$year))
> start <- 2001
> end <- 2003
> # Result container
> mylist <- vector('list', length(loc)) # final list
> acc <- paste("") # vector for avg. cluster coef.
> sna <- cbind(year, acc) # matrix for each location
> # Loop, i for location, acc. as example
> for (i in unique(loc)) {
+
+ for (j in start:end) {
+ el_s <- subset(el, loc==i & year==j) # pick subsample
+ edge <- el[order(el_s$bname, el_s$sname),]
+ nw <- graph_from_data_frame(d= el_s, directed = T)
+
+ # graph plotting
+ png("network"i""j".jpg")
Error: unexpected symbol in:
" # graph plotting
png("network"i" # Error here -- Can the name be save in "network_i_j" mode?
> plot(nw)
> dev.off()
null device
1
+
+ # SNA statistics
+ sna[j,"acc"] <- transitivity(nw, type = "average") # Error here
+
+ }
+
+ mylist[[i]] <- sna
+ }
Error in `[<-`(`*tmp*`, j, "acc", value = transitivity(nw, type = "average")) :
subscript out of bounds
Я пытался применить методы из предыдущего поста для двойных циклов, и я думаю, что я запутался в терминахсохранения результатов во внутреннем цикле.Кроме того, при сохранении графика я не знаю, может ли R сохранить имя в режиме «network_location_year»?Я сделал это так, как это сделал Стата, поэтому, наверное, это не относится к R.
Еще раз спасибо за продвинутый !!