使用purrr::map函数返回的列表中给每个元素命名

9
有没有一种方法可以自动为由purrr:map返回的列表命名?
例如,我经常运行这样的代码。
fn <- function(x) { paste0(x, "_") }
l <- map(LETTERS, fn)
names(l) <- LETTERS

我希望正在自动化的向量可以自动变成生成列表的名称。

这不是一个答案,因为它没有使用purrr::map,但是请注意base::Map会自动分配所需的名称。 - andycraig
2个回答

7
我们可以使用 imap
imap(setNames(LETTERS, LETTERS), ~ paste0(.x, "_"))

或者使用具有命名 vectormap
map(setNames(LETTERS, LETTERS), ~ paste0(.x, "_"))

11
请参考purrr::set_names函数,如果没有给定名称,则该函数将使用向量本身命名:set_names(LETTERS)。注意不要改变原文意思且不提供额外解释。 - aosmith

2
这对我来说看起来是一个干净的方法:
purrr::map(LETTERS, paste0, "_") %>% purrr::set_names()

感谢 aosmith 留下的评论,指出了purrr::set_names的用法。请注意,如果您想将名称设置为其他内容,请使用... %>% set_names(my_names)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接