Перенаправление R-графов в MS Word - PullRequest
5 голосов
/ 27 августа 2011

Интересно, как перенаправить R-графы в MS Word?Как и sink() перенаправить вывод R в любой файл, но не на графики.Я пробовал R2Wd, но иногда он не работает должным образом.Любые комментарии и помощь будут высоко оценены.Спасибо

Ответы [ 2 ]

7 голосов
/ 27 августа 2011

Чтобы ответить на ваш прямой вопрос, лучший способ получить результаты R-сценариев и графиков в слове, вероятно, через некоторую форму Sweave . Посмотрите odfweave , чтобы отправить вывод R в файл LibreOffice , который затем можно преобразовать в слово или даже открыть непосредственно в Word, если у вас есть нужный плагин.

Для создания графиков, которые можно редактировать (то есть вы можете изменить вид графиков, переместить легенду и т. Д.), Я бы порекомендовал сохранить график в формате SVG (масштабируемая векторная графика), который затем можно редактировать, используя отличный свободный вектор графическое приложение inkscape .

Например, если я создам свой график ggplot2 как объект

library(ggplot2)
dataframe<-data.frame(fac=factor(c(1:4)),data1=rnorm(400,100,sd=15))
dataframe$data2<-dataframe$data1*c(0.25,0.5,0.75,1)
testplot<-qplot(x=fac, y=data2,data=dataframe, colour=fac, geom=c("boxplot", "jitter"))

Вы можете использовать пакет Cairo, который позволяет создавать файлы SVG, я могу редактировать их в Inkscape.

library(Cairo)
Cairo(600,600,file="testplot.svg",type="svg",bg="transparent",pointsize=8, units="px",dpi=400)
testplot
dev.off()
Cairo(1200,1200,file="testplot12200.png",type="png",bg="transparent",pointsize=12, units="px",dpi=200)
testplot
dev.off()

Для получения дополнительной информации прочитайте этот предыдущий вопрос, на который есть больше хороших ответов Создание редактируемых графиков из R

Кроме того, вы можете следовать этому совету Хэдли и сохранить фактический объект ggplot2, затем загрузить его позже и изменить его

save(testplot, file = "test-plot.rdata")
# Time passes and you start a new R session
load("test-plot.rdata")
testplot + opts(legend.position = "none")
testplot + geom_point()
2 голосов
/ 27 августа 2011

Чтобы получить поведение, похожее на приемник () с MSword, посмотрите на функцию wdTxtStart в пакете TeachingDemos. Это использует R2wd внутри, так что вы увидите похожую функциональность, просто отправит все, что вы делаете, в текстовый документ.

Графики не отправляются автоматически, поскольку вы, возможно, добавляете их, но как только вы знаете, что закончили работу с графиком, вы можете использовать wdtxtPlot для отправки текущего графика в текстовый документ.

Если вы знаете, что хотите сделать заранее, тогда sweave или что-то подобное, вероятно, является лучшим подходом (как уже упоминалось). Группа, которая создала Rexcel, также работает над Sword, который действительно похож на вещи в MSword.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...