首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将原子向量转换为list (purrr::simplify()的逆)

将原子向量转换为list (purrr::simplify()的逆)
EN

Stack Overflow用户
提问于 2022-04-25 12:40:40
回答 1查看 67关注 0票数 1

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()没有给我我想要的。

简单的例子来说明:

代码语言:javascript
复制
purrr::accumulate(2:3, `+`, .init = c(a=1, b=2))

给我

代码语言:javascript
复制
list(c(a = 1, b = 2), c(a = 3, b = 4), c(a = 6, b = 7))

如预期的那样。然而,

代码语言:javascript
复制
purrr::accumulate(2:3, `+`, .init = c(a=1))

给我

代码语言:javascript
复制
c(a = 1, a = 3, a = 6)

当我想要

代码语言:javascript
复制
list(c(a = 1), c(a = 3), c(a = 6))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-25 13:32:23

你可以试试

代码语言:javascript
复制
c(a = 1, a = 3, a = 6) %>% map(~setNames(.x, nm = "a")) 

$a
a 
1 

$a
a 
3 

$a
a 
6

或者也可以使用set_names()删除列表名。

代码语言:javascript
复制
c(a = 1, a = 3, a = 6) %>% map(~setNames(.x, nm = "a")) %>% 
  set_names("")

[[1]]
a 
1 

[[2]]
a 
3 

[[3]]
a 
6
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71999705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档