【发布时间】:2017-06-29 09:41:36
【问题描述】:
我有一个包含 6 个元素的列表,需要一些汇总统计信息。每个元素都有不同数量的观察值,但都具有相同的 9 个变量。它们是使用拆分创建的,因此每个元素都是不同的处理方式。我想创建一个包含:n、min、max、mean、SD、5th quantile 和 95th quantile) 的表。
我正在为函数map() 使用purrr 包,它类似于lapply(),但更易于调试。
发件人:lapply(test,summary)
我可以得到最小值、最大值、平均值
n, 和 sd 我能够得到以下内容:
mdl_summary= map(test,col_summary, sd) %>%
lapply(., setNames, nm=colnames %>%
map(.,t) %>%
lapply(., function(x) {
row.names(x)=deparse(substitute(sd))
return (x)
})
col_summary 是另一个函数代码:
col_summary <- function(df, fun) {
output <- vector("numeric", length(df))
for (i in seq_along(df)) {
output[[i]] <- fun(df[[i]])
}
output
}
但我无法得到分位数...
我也尝试将mdl_summary 概括为mdl_summary_fun,但无法获得行名来说明它运行的函数。
mdl_summary_fun= function (x,f)
map(x,col_summary, f) %>%
lapply(., setNames, nm=colnames(mdl$Statistics[2:10])) %>%
map(.,t) %>%
lapply(., function(x) {
row.names(x)=deparse(substitute(f))
return (x)
})
【问题讨论】:
-
元素列表?什么类型的元素?向量?矩阵?数据框?请为可重复的示例提供一些数据。在列表的一些元素上使用
dput()。有了一些数据,这个问题在几个小时前就会得到回答!
标签: r