【发布时间】:2019-03-29 06:38:08
【问题描述】:
我使用 Alternatives 来总结数据的 dplyr 方式。我喜欢拆分并应用的方法,但需要一些帮助。
library(Hmisc)
library(data.table)
summary <- function(x) {
funs <- c(wtd.mean, wtd.var)
sapply(funs, function(f) f(x, na.rm = TRUE))
}
df <- split(mtcars, f = mtcars$cyl)
store <- list()
for(i in 1:length(df)) {
store[[i]] <- data.frame(sapply(df[[i]], summary))
}
finaldf <- data.table::rbindlist(store)
finaldf
这是我的代码。使用 split 函数,我得到三个带有汇总值的数据帧。但在那之后,我的代码在创建一个空列表、将矩阵转换为循环内的 data.frame 等方面变得有点混乱。
有没有办法使用多个应用函数来避免这个循环?像 lapply(sapply(...)) 之类的东西?
【问题讨论】:
标签: r loops apply lapply sapply