r - 取消嵌套命名列表列时保留名称
问题描述
这是我的代表:
make_named_list <- function(x) {
list(apple = 1, banana = 2, carrot = 3)
}
tibble(x = 1:3, y = 2:4) %>%
mutate(z = map(x, make_named_list)) %>%
unnest() %>%
pull(z)
输出是一个没有任何名称的列表,但我想输出一个命名列表。我在这里查看了一个相关问题,但我不确定该解决方案是否适用于我的(更简单的?)场景。
需要明确的是,所需的输出是:
list(apple = 1, banana = 2, carrot = 3,
apple = 1, carrot = 2, banana = 3,
apple = 1, banana = 2, carrot = 3)
解决方案
看起来我们只需要rep
rep(make_named_list(3), 3)
#$apple
#[1] 1
#$banana
#[1] 2
#$carrot
#[1] 3
#$apple
#[1] 1
#$banana
#[1] 2
#$carrot
#[1] 3
#$apple
#[1] 1
#$banana
#[1] 2
#$carrot
#[1] 3
或者如果我们正在使用tidyverse
,那么使用flatten
tibble(x = 1:3, y = 2:4) %>%
transmute(z = map(x, make_named_list)) %>%
pull(z) %>%
flatten
#$apple
#[1] 1
#$banana
#[1] 2
#$carrot
#[1] 3
#$apple
#[1] 1
#$banana
#[1] 2
#$carrot
#[1] 3
#$apple
#[1] 1
#$banana
#[1] 2
#$carrot
#[1] 3
推荐阅读
- laravel - 如何限制 Laravel 中的广播事件?
- wordpress - 在每个帖子发布后创建一个 Cron 作业
- flutter - 水平翻转动画 ImageWidget Flutter
- javascript - 意外的标识符,而
- c# - 在 Xamarin 中导航到本机表单会产生空引用异常
- mysql - 从 MySQL 数据库 INSERT 选择数据到 Oracle - 可能吗?
- php - 如何防止在laravel中手动设置url
- android - R8 在没有 -allowaccessmodification 标志的情况下将抽象类的“受保护”方法更改为“公共”
- java - 导出多个 jar 文件 - 可扩展性问题
- linux - 配置 linux 以始终保持一定数量的 RAM 空闲?