将R图与其他R输出组合

时间:2013-07-02 23:50:27

标签: r plot

我正在尝试做一些看似这样的事情。它应该很简单,但我整个星期一直在撞墙。我有一个256列的数据框,我使用table()从中生成2x2表的所有唯一组合,在chisq.test()oddsratios()上运行统计信息,同时使用{{1}将输出传递给文件。当我想在文本中嵌入绘图时,问题就来了。我想让每个表的第一部分包含两个变量的直方图,但是图和文本似乎没有混合。我无法找到有关如何重定向绘图设备的任何信息。顺便说一句,如果我使用sink()X11(),我就会到达哪里。我可以将多个情节图形输出到绘图输出文件中。所以我可以做我想要的两件事,但不能同时做。任何建议都会非常感激。

1 个答案:

答案 0 :(得分:0)

R package knitr(http://yihui.name/knitr/)旨在完全按照您的意愿行事。它允许您以html格式生成带有注释的数据报告,文本和图表散布在同一文件中。在(免费)R IDE R Studio(http://www.rstudio.com/)中使用时尤其有效。

如果您真的打算将文本结果放在与图形相同的文件中,那么最好用文本注释图形而不是相反。例如,您可以创建一个绘图,并使用mtext()或text()函数将chisq.test p值和chi平方值添加到绘图中。这是使用cor.test而不是chisq.test的示例:

xx <- rnorm(30, mean=5, sd=4) # some random numbers
yy <- xx + rnorm(30, mean=2, sd=3.5) # add noise to those random numbers
png("plot.png") # open a png device
plot(xx, yy) 
xy.cor <- cor.test(xx, yy) # run the correlation test
# print the test results to the plot margins
mtext(paste("R squared =", xy.cor$cor, "p value =", xy.cor$p.value), side=3)
dev.off() # close the png device