从几个摘要统计信息中创建一个表

时间:2015-01-18 14:06:09

标签: rstudio aggregation xtable

我在Mac上使用R Studio版本0.98.1062(OS X Yosemite 10.10.1)。 我想从数据中创建一个表格(最好将其转换为excel或pdf格式),用于描述在不同学科注册的女性比例的几个摘要统计数据:

  

摘要(农业$ X2009.PROP)

最小。第一曲。中位数第3曲。最大

0.0000 0.3333 0.4881 0.4689 0.6026 1.0000

  

摘要(经济学$ X2009.PROP)

最小。第一曲。中位数第3曲。最大。 NA的

0.0000 0.2555 0.3161 0.3218 0.3887 0.6923 29

  

摘要(教育$ X2009.PROP)

最小。第一曲。中位数第3曲。最大。 NA的

0.0000 0.2967 0.5000 0.5490 0.8571 1.0000 46

  

摘要(法$ X2009.PROP)

最小。第一曲。中位数第3曲。最大。 NA的

0.0000 0.4250 0.5695 0.5324 0.6593 1.0000 28

基本上我希望表格看起来像这样:

纪律/ SS Min.1st Qu。中位数第3曲。最大。

农业0.0000 0.3333 0.4881 0.4689 0.6026 1.0000

经济学0.0000 0.2555 0.3161 0.3218 0.6923 29

教育......

法律......

你会如此善意地告诉我如何编写代码吗?

1 个答案:

答案 0 :(得分:0)

有两种基本方法可以做到这一点:预先或之后组合数据。

从统一分布中随机抽取的一些样本数据:

x <- runif(100)
y <- runif(100)

合并和总结

如果您想预先合并数据,则需要使用data.frame()

d <- data.frame(variable1=x,variable2=y)
summary(d)

将为您提供如下输出:

   variable1         variable2      
 Min.   :0.03026   Min.   :0.01173  
 1st Qu.:0.29410   1st Qu.:0.24968  
 Median :0.48517   Median :0.47524  
 Mean   :0.51137   Mean   :0.47865  
 3rd Qu.:0.71354   3rd Qu.:0.69512  
 Max.   :0.98465   Max.   :0.980

(请注意,您也可以在不指定列名的情况下执行data.frame(),在这种情况下,变量的名称将用作列名。)这可能需要一些工作才能将其转换为您想要的格式,但它可能是R中后期分析的更好格式。{d现在处于“宽格式”,通过像{{1}这样的包来翻译成标准的“长格式”并不困难。或其后继者reshape)。

作为侧边栏,您可以使用reshape2(列绑定)而不是cbind(),在这种情况下,您现在可以使用矩阵而不是数据框。对于纯粹的数值和简单的汇总统计数据,这并没有太大的区别。我只是将其视为与data.frame并行(见下文) - 通常观察结果存储在数据帧中而不是普通矩阵中(即语义上更丰富的存储空间)。

汇总和合并

如果要合并摘要,可以使用rbind()(行绑定)来合并摘要。

rbind()

将为您提供如下输出:

xs <- summary(x)
ys <- summary(y)

s <- rbind(xs,ys) 

print(s)

从那里开始,使用内置函数将表格数据写入文件应该很容易,请参阅 Min. 1st Qu. Median Mean 3rd Qu. Max. xs 0.03026 0.2941 0.4852 0.5114 0.7135 0.9847 ys 0.01173 0.2497 0.4752 0.4787 0.6951 0.9803 。 Excel可以打开制表符分隔和CSV文件。如果您想直接转到PDF,那么您需要查看通过?write.table包导出到LaTeX和/或使用RMarkdown生成报告。这些系统的打印表在网上其他地方有详细记载。