根据几个汇总统计信息创建一个表



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

摘要(农业$X2009.PROP(

最小。第一个Qu中值平均值第三个Qu最大

0.0000 0.3333 0.4881 0.4689 0.6026 1.0000

摘要(经济学$X2009.PROP(

最小。第一个Qu中值平均值第三个Qu最大NA的

0.0000 0.2555 0.3161 0.3218 0.3887 0.6923 29

摘要(教育$X2009.PROP(

最小。第一个Qu中值平均值第三个Qu最大NA的

0.0000 0.2967 0.5000 0.5490 0.8571 1.0000 46

摘要(法律$X2009.PROP(

最小。第一个Qu中值平均值第三个Qu最大NA的

0.0000 0.4250 0.5695 0.5324 0.6593 1.0000 28

基本上,我想要一张这样的桌子:

纪律/SS最小第1个质量中值平均第3个质量最大

农业0.0000 0.3333 0.4881 0.4689 0.6026 1.0000

经济性0.0000 0.2555 0.3161 0.3218 0.6923 29

教育。。。。

法律。。。。

你能告诉我如何写代码吗?

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

一些样本数据,随机取自均匀分布:

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现在是"宽格式",通过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

从那里,使用内置函数将表格数据写入文件应该足够容易,请参阅?write.table。Excel可以打开制表符分隔的文件和CSV文件。如果你想直接转到PDF,那么你需要考虑通过xtable包导出到LaTeX和/或使用RMarkdown生成报告。用这些系统打印表格在网上其他地方有很好的记录。

最新更新