下面是我创建的示例数据框以及预期的输出。
df = data.frame(color = c("Yellow", "Blue", "Green", "Red", "Magenta"),
values = c(24, 24, 34, 45, 49),
Quarter = c("Period1","Period2" , "Period3", "Period3", "Period1"),
Market = c("Camden", "StreetA", "DansFireplace", "StreetA", "DansFireplace"))
dfXQuarter = df %>% group_by(Quarter) %>% summarise(values = sum(values)) %>%
mutate(cut = "Quarter") %>% data.frame()
colnames(dfXQuarter)[1] = "Grouping"
dfXMarket = df %>% group_by(Market) %>% summarise(values = sum(values)) %>%
mutate(cut = "Market")%>% data.frame()
colnames(dfXMarket)[1] = "Grouping"
df_all = rbind(dfXQuarter, dfXMarket)
Run Code Online (Sandbox Code Playgroud)
现在,为了简洁起见,我想将其编译成一个函数并使用 lapply。以下是我的尝试 -
list = c("Market", "Quarter")
df_all <- do.call(rbind, …Run Code Online (Sandbox Code Playgroud) 我在 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)
但这不起作用。如何修复此代码?