为什么map_if()在列表中不起作用

cep*_*pod 6 dictionary if-statement r purrr

请帮我

1)为什么map_if在列表中不起作用
2)是否有使其工作的方法
3)如果不可行,还有哪些选择

提前致谢。

library(dplyr) 
library(purrr) 

cyl <- split(mtcars, mtcars$cyl) 

# This works
map_if(mtcars, is.numeric, mean) 

# This does not work 
map_if(cyl, is.numeric, mean)
Run Code Online (Sandbox Code Playgroud)

Axe*_*man 6

因为您需要映射到较低的一个杠杆,所以列位于第2层。因此,您可以执行以下操作:

map(cyl, ~map_if(., is.numeric, mean))
Run Code Online (Sandbox Code Playgroud)

要么:

map(cyl, map_if, is.numeric, mean)
Run Code Online (Sandbox Code Playgroud)

如果没有的话

map_depth(cyl, 2, mean)
Run Code Online (Sandbox Code Playgroud)