首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解purrr地图输出

理解purrr地图输出
EN

Stack Overflow用户
提问于 2018-10-16 10:24:42
回答 2查看 203关注 0票数 1

把我的头绕着地图还回来的东西有点困难

代码语言:javascript
复制
map(1:3, print)
[1] 1
[1] 2
[1] 3
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

前三个输出是有意义的,因为它们匹配手动输入返回的内容。

代码语言:javascript
复制
print(1)
print(2)
print(3)

接下来,它似乎是某种嵌套列表。有什么办法只得到其中一个吗?

任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-16 12:07:09

所以我认为map返回一个列表,print返回到控制台。所以你看到的是printmap的回归。当您将它赋值给一个变量时,它就变得非常明显了。

代码语言:javascript
复制
library(purrr)

#no assignment, both returns
map(1:3, ~print(.x))
#> [1] 1
#> [1] 2
#> [1] 3
#> [[1]]
#> [1] 1
#> 
#> [[2]]
#> [1] 2
#> 
#> [[3]]
#> [1] 3

x <- map(1:3, ~print(.x))
#> [1] 1
#> [1] 2
#> [1] 3


x
#> [[1]]
#> [1] 1
#> 
#> [[2]]
#> [1] 2
#> 
#> [[3]]
#> [1] 3

您可以在这里看到,即使您将map(1:3, ~print(.x))分配给一个变量,print仍然返回1:3到控制台,变量x在列表中保存1:3的值。

票数 3
EN

Stack Overflow用户

发布于 2018-10-16 10:26:22

使用purrr,您可以指定要获得的输出,如下所示:

代码语言:javascript
复制
map_int(1:3, print)

#[1] 1
#[1] 2
#[1] 3
#[1] 1 2 3

请参阅?map以获得所有可能的结果。当然,如果您想要的结果没有意义,比如map_lgl(1:3, print),它会抛出一个错误。

当您在自定义函数中使用map时,这是非常有用的,因为您可以控制输出,并在出错时捕获错误。

当然,您可以单独使用map,但就像在您的示例中一样,最好使用更精确的东西(map_intmap_dfmap_char、ecc.)。

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

https://stackoverflow.com/questions/52833315

复制
相关文章

相似问题

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