R题:如何将汇总结果保存到数据集中

编程入门 行业动态 更新时间:2024-10-22 07:50:35
本文介绍了R题:如何将汇总结果保存到数据集中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我是一名 SAS 程序员,正在尝试学习 R.如果是 SAS,我会这样做以将描述性统计数据的结果保存到数据集中:

I'm a SAS programmer trying to learn R. If SAS, I would do this to save results of descriptive stats into a dataset:

proc means data=abc; var var1 var2 var3; ods output summary=result1; run;

我认为在 R 中,应该是这样的:摘要(abc)->result1

I think in R, it would be this: summary(abc)->result1

有人告诉我这样做.as.data.frame(unclass(summary(new_scales)))->new_table

Someone told me to do this. as.data.frame(unclass(summary(new_scales)))->new_table

但是这个表中的结果不是很有用.

But the result in this table is not very usable.

是否可以获得更好的结构化结果,就像我从 SAS PROC MEANS 中得到的那样?我希望列看起来像:变量名称、平均值、标准差、最小值、最大值等.和列携带每个变量的结果.

Is there away to get a better structured result like I would get from SAS PROC MEANS? I would like columns to look like: variable name, Mean, SD, min, max, etc. and columns carry results from each variable.

推荐答案

考虑sapply(隐藏循环返回等长对象作为输入)创建聚合结果矩阵:

Consider sapply (hidden loop to return equal length object as input) to create a matrix of aggregation results:

# SINGLE AGGREGATE stats_vector <- sapply(abc[c("var1", "var2", "var3")], function(x) mean(x, na.rm=TRUE))) # MULTIPLE AGGREGATES stats_matrix <- sapply(abc[c("var1", "var2", "var3")], function(x) c(count=length(x), sum=sum(x), mean=mean(x), min=min(x), q1=quantile(x)[2], median=median(x), q3=quantile(x)[4], max=max(x), sd=sd(x))) )

如果您的 proc 表示 使用 class 进行分组,则使用返回数据框的 aggregate:

If your proc means uses class for grouping, then use aggregate which returns a data frame:

# SINGLE AGGREGATE mean_df <- aggregate(cbind(var1, var2, var3) ~ group, abc, function(x) mean(x, na.rm=TRUE))) # MULTIPLE AGGREGATES agg_raw <- aggregate(cbind(var1, var2, var3) ~ group, abc, function(x) c(count=length(x), sum=sum(x), mean=mean(x), min=min(x), q1=quantile(x)[2], median=median(x), q3=quantile(x)[4], max=max(x), sd=sd(x))) ) agg_df <- do.call(data.frame, agg_raw)

Rextester 演示

更多推荐

R题:如何将汇总结果保存到数据集中

本文发布于:2023-11-22 13:23:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1617583.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何将   数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!