【发布时间】:2018-07-04 17:58:57
【问题描述】:
purrr::map 函数提供了一些选择列表元素的快捷方式:您可以通过提供整数来使用位置,或者通过提供字符串来使用名称。一个示例here 表明您可以使用向量来处理嵌套列表元素。例如,
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"))
最后一个选项是我发现的一种接近混合输入的方法。我认识到混合矢量化输入属于不同的类别,因为它包含字符。这是它产生错误的原因吗?使用混合位置和名称输入可以进行哪些更改?
【问题讨论】: