Включение индекса в команду вставки при выполнении цикла в R - PullRequest
0 голосов
/ 26 марта 2019

Я хочу присвоить значение заранее определенным спискам, используя индекс в команде вставки при выполнении цикла в R.

Я всегда получаю ошибку, что цель назначения расширяется до неязыковогообъекты.

Вот пример:

List_1 <- List_2 <- list()

for(i in 1:2){
    paste("List_", i, sep="")[[i]] <- i
}

Ожидаемый результат может быть сгенерирован:

List_1[[1]] <- 1; List_1[[2]] <- 2
List_2[[1]] <- 1; List_2[[2]] <- 2

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Мне непонятно, почему в каждом списке должны быть только нули.Однако присвоение элементов вставленным именам является головной болью в R. Вы должны использовать функцию assign и указать среду.Как то так.

for(i in 1:2){
  values <- list(1:i)
  assign(x = paste0("List_", i), value = values, envir = globalenv())
}

List_1
[[1]]
[1] 1
List_2
[[1]]
[1] 1 2
0 голосов
/ 26 марта 2019

Более подходящим способом «R» может быть:

List_12 <- as.list(1:2)

for(i in 1:2){
    for(j in 1:2){
        List_12[[i]][[j]] <- i
    }
}

Вы можете назвать свои списки в этой структуре:

names(List_12) <- paste0("List_",c(1,2))

Затем вы можете индексировать по имени:

List_12[["List_1"]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...