【问题标题】:`purrr:map()` to print items in a list and also their names`purrr:map()` 打印列表中的项目及其名称
【发布时间】:2020-06-21 11:37:20
【问题描述】:

我有一个简单的问题,我希望能够使用purrr::map() on。

我有一个命名项目列表(本示例使用 mtcars 数据集):

var_labels 

我可以打印所有chr 列表项 (打印是我真正问题的简化):

打印标签

这给出了:

>[1]“气缸数”
>[1]“位移”
>$cyl
>[1]《气缸数》
>
>$显示
>[1]“位移”

但我似乎无法打印列表项及其名称:

print_item_and_name 

这给了我 NULL:

>[1]“气缸数”
>NULL
>[1]“位移”
>NULL
>$cyl
>NULL

>$显示
>NULL

我真正的问题不只是打印项目及其名称,但我怀疑如果我能找到这个简化步骤的解决方案,我应该能够解决我的真正问题。

期望的输出是:

>[1]“气缸数”
> “汽缸”
>[1]“位移”
     “显示”

【问题讨论】:

    标签: r tidyverse purrr


    【解决方案1】:

    map 无权访问列表名称。为此使用了imap:

    print_item_and_name <- function(x, y){
       print(x)
       print(y)
    }
    
    purrr::imap(var_labels, print_item_and_name)
    

    也可以单独传递names,使用map2:

    purrr::map2(var_labels, names(var_labels), print_item_and_name)
    

    这与在 base 中使用 mapply/Map 相同。

    Map(print_item_and_name, var_labels, names(var_labels))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      相关资源
      最近更新 更多