Функция purrr::map
предоставляет несколько ярлыков для выбора элементов списка: вы можете использовать позицию, указав целое число, или имя, указав строку. Пример здесь указывает, что вы можете использовать вектор для работы с вложенными элементами списка. Например,
library(purrr)
library(repurrrsive) #includes example list data
gh_repos %>% map_chr(., c(1, 3))
перемещается внутри каждой первой позиции, чтобы получить и вернуть третий элемент списка.
Тем не менее, когда я пытался смешать ввод, используя позицию и имя, он возвращает ошибку:
gh_repos %>% map_chr(., c(1, "full_name"))
#Error: Result 1 is not a length 1 atomic vector
Синтаксис может быть представлен несколькими другими способами возврата тех же результатов:
gh_repos %>% map_chr(c(1,3)) #Shown above
gh_repos %>% map(1) %>% map_chr("full_name")
gh_repos %>% map_chr(~pluck(.x, 1, "full_name"))
Последний вариант был открытием, которое я сделал, которое приближается к смешанным входам. Я признаю, что смешанный векторизованный ввод относится к другому классу, потому что он включает символы. Это причина, по которой он выдает ошибку? Какие изменения я могу сделать, чтобы использовать смешанные позиции и имена?