2013-07-02 4 views
0

Я пытаюсь сделать что-то похожее на это. Это должно быть просто, но я всю ночь бил головой о стену. У меня есть кадр данных с 256 столбцами, из которых я генерирую все уникальные комбинации таблиц 2x2, используя table(), запустите статистику по таблицам, например chisq.test() и oddsratios(), используя sink(), чтобы передать вывод в файл. Проблема возникает, когда я хочу встраивать графики в текст. Я бы хотел, чтобы в первом разделе каждой таблицы содержались гистограммы двух переменных, но графики и текст не смешивались. Я не смог найти ничего о том, как перенаправить сюжетное устройство. В стороне, я добрался до того, где, если я использую X11() и par() Я могу получить фигурку с несколькими графиками в выходной файл графика. Поэтому я могу сделать две вещи, которые хочу, но не в то же время. Любые предложения будут высоко ценится.Сочетание R-графиков с другим выходом R

+1

Пожалуйста, покажите нам пример код и вывод – Metrics

+1

я предложил бы использовать knitr с LaTeX, чтобы создать файл с таблицами, графиками и текстом. В противном случае напишите их цифрами на изображения с помощью png (...) и включите их только в текстовые файлы. – DiscreteCircle

ответ

0

The R pack knitr (http://yihui.name/knitr/) предназначен для того, чтобы делать именно то, что вы хотите сделать. Он позволяет создавать аннотированные отчеты ваших данных в формате html с текстом и графиками, перемежающимися в одном файле. Это особенно эффективно при использовании в (свободной) R IDE R Studio (http://www.rstudio.com/).

Если вы действительно настроились на то, что ваши текстовые результаты попадают в те же файлы, что и ваши сюжеты, вам лучше будет комментировать сюжеты с текстом, чем наоборот. Вы можете, например, создать сюжет и добавить значение ch-q.test p-value и chi в квадрат к графику с помощью функции mtext() или text(). Вот пример использования 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