我有一个简单的问题,我希望能够使用purrr::map()它。
我有一个命名项目列表(此示例使用mtcars数据集):
var_labels <- list(cyl = "气缸数",
disp =“位移”)
我可以打印所有chr列表项(打印是我真正问题的简化):
print_label <- 函数(x){
打印(x)
}
地图(var_labels,打印_标签)
这使:
>[1]“气缸数” >[1]“位移” >$缸 >[1]“气缸数” > >$显示 >[1]“位移”
但我似乎无法打印列表项及其名称:
print_item_and_name <- 函数(x){
打印(x)
打印(名称(x))
}
地图(var_labels,print_item_and_name)
这给了我 NULL:
>[1]“气缸数” >空 >[1]“位移” >空 >$缸 >空 >$显示 >空
我真正的问题不仅仅是打印项目及其名称,但我怀疑如果我能找到这个简化步骤的解决方案,我应该能够解决我的真正问题。
期望的输出是:
>[1]“气缸数”
> “圆柱”
>[1]“位移”
“显示”
map无权访问列表中的名称。为此imap使用:
print_item_and_name <- function(x, y){
print(x)
print(y)
}
purrr::imap(var_labels, print_item_and_name)
Run Code Online (Sandbox Code Playgroud)
names您还可以单独传递并使用map2:
purrr::map2(var_labels, names(var_labels), print_item_and_name)
Run Code Online (Sandbox Code Playgroud)
mapply这与在基础中使用/相同Map。
Map(print_item_and_name, var_labels, names(var_labels))
Run Code Online (Sandbox Code Playgroud)