我在 R 中使用内置的空气质量数据集 下面是我的代码
f <- function(x){
list(sd(x),median(x))
}
sapply(airquality,f)
#output
Ozone Solar.R Wind Temp Month Day
33.27597 91.1523 3.557713 9.529969 1.473434 8.707194
31 207 9.7 79 7 16
Run Code Online (Sandbox Code Playgroud)
我想要相同的输出,但使用 purrr::map。我试过 -
map_dbl(airquality,.f)
Run Code Online (Sandbox Code Playgroud)
但这不起作用。如何修复此代码?
您可以根据您想要的输出方式使用map_df/应用多个功能map_dfc。
purrr::map_df(airquality, ~list(med = median(.x, na.rm = TRUE), sd = sd(.x, na.rm = TRUE)))
Run Code Online (Sandbox Code Playgroud)
要获得完全如图所示的预期输出,我们可以使用
purrr::map(airquality, f) %>%
purrr::transpose() %>%
dplyr::bind_rows()
# A tibble: 2 x 6
# Ozone Solar.R Wind Temp Month Day
# <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 33.3 91.2 3.56 9.53 1.47 8.71
#2 31 207 9.7 79 7 16
Run Code Online (Sandbox Code Playgroud)
基础 R:
sapply(airquality, function(x){
list(std_dev = sd(x, na.rm = TRUE), med = median(x, na.rm = TRUE))
}
)
Run Code Online (Sandbox Code Playgroud)