Извлечь конкретную переменную из списка - PullRequest
0 голосов
/ 05 декабря 2018

Я был бы признателен, если бы кто-нибудь сказал мне, как извлечь переменную «ID» из списка «работает» из списка «программа 1» и преобразовать их во фрейм данных с помощью цикла for.

the list looks like this

1 Ответ

0 голосов
/ 05 декабря 2018

Мы могли бы проверить структуру списка, а затем получить доступ к элементу списка по имени или индексу, например:

# example input
program1 <- list(list(id = 1, x = 3, works = list(1:3, list(ID = 11, 1:3, 4:6))),
                 list(id = 2, x = 4, works = list(4:6, list(ID = 22, 1:3, 4:6))))

# by index
program1[[ 1 ]][[ 3 ]][[ 2 ]][[ 1 ]]
# [1] 11

# by name
program1[[1]][["works"]][[ 2 ]][["ID"]]
# [1] 11

Если мы используем RStudio, то есть удобная опция «укажи и щелкни»чтобы получить элементы из списка:

enter image description here

Это обеспечит следующий код в консоли:

program1[[1]][["works"]][[2]][["ID"]]

Наконец, из вашего примерапохоже, что мы хотим извлечь все идентификаторы из всех 875 элементов списка, а затем использовать:

# get all IDs
sapply(program1, function(i) i[[ "works" ]][[ 2 ]][[ "ID"]])
# [1] 11 22
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...