【发布时间】:2019-10-10 08:54:06
【问题描述】:
purrr::map_dfr 和 purrr::map_dfc 都返回一个宽 data.frame。
library(tidyverse)
mtcars %>%
map_dfr(~is.na(.) %>% mean)
mtcars %>%
map_dfc(~is.na(.) %>% mean)
都返回
# A tibble: 1 x 11
mpg cyl disp hp drat wt qsec vs am gear carb
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 0 0 0 0 0 0 0 0 0 0 0
我可以用tidyr::gather 来做这件事
mtcars %>%
map_dfr(~is.na(.) %>% mean) %>%
gather
返回
# A tibble: 11 x 2
key value
<chr> <dbl>
1 mpg 0
2 cyl 0
3 disp 0
4 hp 0
5 drat 0
6 wt 0
7 qsec 0
8 vs 0
9 am 0
10 gear 0
11 carb 0
是否有一个 purrr::map* 变体本机返回一个长 data.frame?
【问题讨论】:
-
在数据框上调用
map_*意味着您正在映射列列表,因此生成的数据框将具有与原始数据框相同的列数是有意义的。你只是想要summarize_all吗? -
tidyverse 函数旨在做一件事并把它做好。现在“一件事”的意思是一个灰色区域,但我看到你想要做的事情的方式真的是
summarize_all+gather。