我需要能够使用列表中的键。对于purrr
,我使用map2
系列(此处为map2_chr
)并使用names(.)
来获取密钥。
但是,当原始列表只有1个元素长且没有键时,map2_chr
将发回一个空向量。
我在purrr
仓库中打开了一个问题,因为我认为这可能是一个错误。
library(purrr)
alist <- list("bla")
alist %>%
map_chr(~ .)
#> [1] "bla"
alist %>%
map2_chr(.y = NULL, ~ .x)
#> character(0)
alist %>%
map2_chr(.y = alist, ~ .x)
#> [1] "bla"
我正在寻找一种方法,当"bla"
的值为.y
时获得NULL
事件。
答案 0 :(得分:1)
我怀疑NULL
是否可行,因为
length(NULL)
#[1] 0
来自?map2
如果所有输入的长度均为0,则输出的长度为0。如果任何输入的长度为1,则将其循环使用最长的长度。
因此,您得到character(0)
。
如果一个输入的长度为1,则将其回收
alist %>% map2_chr(.y = 1:5, ~ .x)
#[1] "bla" "bla" "bla" "bla" "bla"