TLDR:我需要一种简单的方法将c(a = 1, a = 3, a = 6)转换成list(c(a = 1), c(a = 3), c(a = 6))。
更长的版本:我使用的是函数purrr::accumulate(),其中每个元素的输出都是一个长度大于或等于1的原子向量。当长度为1时,purrr::accumulate()将整个输出简化为原子向量,而不是列表。
有一个简单的方法来撤销或避免这一点吗?不幸的是,as.list()没有给我我想要的。
简单的例子来说明:
purrr::accumulate(2:3, `+`, .init = c(a=1, b=2))给我
list(c(a = 1, b = 2), c(a = 3, b = 4), c(a = 6, b = 7))如预期的那样。然而,
purrr::accumulate(2:3, `+`, .init = c(a=1))给我
c(a = 1, a = 3, a = 6)当我想要
list(c(a = 1), c(a = 3), c(a = 6))发布于 2022-04-25 13:32:23
你可以试试
c(a = 1, a = 3, a = 6) %>% map(~setNames(.x, nm = "a"))
$a
a
1
$a
a
3
$a
a
6或者也可以使用set_names()删除列表名。
c(a = 1, a = 3, a = 6) %>% map(~setNames(.x, nm = "a")) %>%
set_names("")
[[1]]
a
1
[[2]]
a
3
[[3]]
a
6https://stackoverflow.com/questions/71999705
复制相似问题