R: список, содержащий списки - PullRequest
2 голосов
/ 19 января 2012

Я хотел бы спросить, может ли кто-нибудь найти ошибку во 2-й конструкции за то, что не получил тот же список, что и в 1-й конструкции. Есть ли способ сослаться на имя элемента списка? Например, somefunction (myList [[1]]) == a1?

# construction #1
myList <- list(a1 = list(a2 = list("a21", "a22")), b1 = list("b1", "b2"))

# construction #2
myList                  <- list()
myList[[1]]             <- list(a1=list())
myList[[1]][[1]]        <- list(a2=list())
myList[[1]][[1]][[1]]   <- "a21"
myList[[1]][[1]][[2]]   <- "a22"
myList[[2]]             <- list(b1=list())
myList[[2]][[1]]        <- "b1"
myList[[2]][[2]]        <- "b2"

Большое спасибо заранее

1 Ответ

5 голосов
/ 19 января 2012

Давайте сделаем это проще и посмотрим только на первую строку:

myList <- list(a1 = "anything")
# vs
myList <- list()
myList[[1]] <- list(a1="anything")

В первой конструкции слот 1 в верхнем списке называется «a1» и содержит «что-нибудь». Во второй конструкции слот 1 верхнего списка не имеет названия и содержит список, первый слот которого называется «a1» и содержит «что угодно».

Чтобы сделать их похожими, попробуйте:

myList <- list()
myList[["a1"]] <- "anything"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...