как назначить векторы из циклов в списке в R

#r #list #for-loop

#r #Список #для цикла

Вопрос:

У меня есть цикл, который приводит к 5 векторам разных размеров, я хотел бы знать, как назначить эти векторы в одном списке.

Минимальный пример того, что я пытаюсь сделать, и где я ошибаюсь, будет:

 
    m=5;n=10
    sh=c(0,0,0,0,-39,-75,-12,11,-15)
    th=c(0,0,0,0,-19,-86,-74,-53,-41)
    Cj=c(-9,-7,-5,-3,-1,1,3,6,6,9)
    for(k in  m:n-1){
    Ai=vector("numeric", k)
    for(i in 1:k){  
    Ai[i]=exp(sh[k] Cj[i]*th[k])/(1 exp(sh[k] Cj[i]*th[k]))^2
    }
    } 

 
  

Ответ №1:

Вы могли бы сделать что-то вроде этого.

 a1 <- 1
a2 <- 2
a3 <- 3

xy <- ls(pattern = "a")

fl <- list()

for (i in seq_along(xy)) {
  fl[i] <- get(xy[i])
}

names(fl) <- xy

$a1
[1] 1
$a2
[1] 2
$a3
[1] 3
  

Или, для удовольствия, вы можете использовать mget :

 > mget(xy)
$a1
[1] 1

$a2
[1] 2

$a3
[1] 3