在R中的map()中使用管道

vuz*_*zun 6 r dplyr purrr

尝试在map()内进行管道传递时出现意外结果

map(ls(), ~ . %>% get %>% dim)
Run Code Online (Sandbox Code Playgroud)

返回以下消息:

Functional sequence with the following components:

 1. get(.)
 2. dim(.)

Use 'functions' to extract the individual functions. 
Run Code Online (Sandbox Code Playgroud)

我真的不知道functions()将如何获得我想要的结果。

有没有办法用管道和地图做到这一点?

不使用管道

map(ls(), ~ get(dim(.)))
Run Code Online (Sandbox Code Playgroud)

,结果就是我所期望的。

G. *_*eck 8

. %>% get %>% dim已经是一个函数,因此只需省略~,即

map(ls(), . %>% get %>% dim)
Run Code Online (Sandbox Code Playgroud)

要么:

ls() %>% map(. %>% get %>% dim)
Run Code Online (Sandbox Code Playgroud)