我正在尝试执行一个函数,该函数使用带有purrr::pmap
的传递参数的名称。与purrr::map
(请参阅下文)不同,pmap
不会保留这些名称。以下MWE捕获了该问题:
print_names <- function(x) {
print(names(x))
}
namedVec <- c(nameA = "valueA")
purrr::map(list(namedVec), print_names)
# [1] "nameA"
# [[1]]
# [1] "nameA"
purrr::pmap(list(namedVec), print_names)
# NULL
# $nameA
# NULL
答案 0 :(得分:2)
请注意,在pmap
中,.l
参数必须是列出的参数的列表,但是在函数调用中,它只是一个列表:
print_names <- function(x) {
print(names(x))
}
namedVec <- c(nameA = "valueA")
purrr::map(list(namedVec), ~print_names(.))
#> [1] "nameA"
#> [[1]]
#> [1] "nameA"
purrr::pmap(list(list(namedVec)), print_names)
#> [1] "nameA"
#> [[1]]
#> [1] "nameA"
由reprex package(v0.2.1)于2018-10-07创建