我正在尝试做一些看起来像这样的事情。这应该很简单,但我整个星期都在用头撞墙。我有一个包含 256 列的数据框,我从中生成 2x2 表的所有唯一组合,使用表table()
运行统计信息,例如chisq.test()
使用oddsratios()
管道sink()
将输出传输到文件。当我想在文本中嵌入图时,问题就来了。我想让每个表的第一部分包含两个变量的直方图,但图和文本似乎没有混合。我无法找到有关如何重定向绘图设备的任何信息。顺便说一句,如果我使用X11()
和par()
我可以将多图图形添加到绘图输出文件中。所以我可以做我想做的两件事,但不能同时做。任何建议将不胜感激。
问问题
723 次
1 回答
0
R 包 knitr ( http://yihui.name/knitr/ ) 旨在做你想做的事。它允许您以 html 格式生成带注释的数据报告,其中文本和图表散布在同一文件中。在(免费)R IDE R Studio ( http://www.rstudio.com/ ) 中使用时特别有效。
如果您真的打算将文本结果放入与绘图相同的文件中,那么最好用文本注释绘图而不是相反。例如,您可以制作一个绘图,并使用 mtext() 或 text() 函数将您的 chisq.test p 值和卡方值添加到绘图中。这是一个使用 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 =", round(cor.test(xx, yy)$estimate, 2),
"p value =", xy.cor$p.value), side=3)
dev.off() # close the png device
于 2013-07-03T22:42:06.183 回答