我在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生成报告。用这些系统打印表格在网上其他地方有很好的记录。