Создать PDF-таблицу - PullRequest
       7

Создать PDF-таблицу

32 голосов
/ 07 октября 2010

Есть ли способ создать PDF таблицы из R так же, как вы строите график (например, с помощью pdf () или ggsave ())? Я понимаю, что есть способы с другими программами (с использованием Sweave и т. Д.), Но я хотел бы создать его только из R.

Ответы [ 5 ]

30 голосов
/ 07 октября 2010

Да, вы можете поместить текст в графики и, следовательно, в устройства pdf.

Самой хорошей оберткой для этого может быть функция textplot() в доверенном пакете gplots Грега Варнеса. Ниже приведено начало раздела примеров на странице справки:

# show R version information
textplot(version)
# show the alphabet as a single string
textplot( paste(letters[1:26], collapse=" ") )

# show the alphabet as a matrix 
textplot( matrix(letters[1:26], ncol=2))

### Make a nice 4 way display with two plots and two text summaries 
data(iris)  
par(mfrow=c(2,2))   
plot( Sepal.Length ~ Species, data=iris, border="blue", col="cyan",   
      main="Boxplot of Sepal Length by Species" )    
plotmeans(Sepal.Length ~ Species, data=iris, barwidth=2, connect=FALSE,
          main="Means and 95\% Confidence Intervals\nof Sepal Length by Species")

info <- sapply(split(iris$Sepal.Length, iris$Species),
               function(x) round(c(Mean=mean(x), SD=sd(x), N=gdata::nobs(x)),2))

textplot( info, valign="top"  )
title("Sepal Length by Species")

reg <- lm( Sepal.Length ~ Species, data=iris )
textplot( capture.output(summary(reg)), valign="top")
title("Regression of Sepal Length by Species")

par(mfrow=c(1,1))
14 голосов
/ 20 сентября 2011

см. Также grid.table в gridExtra, используя сеточную графику.

4 голосов
/ 22 ноября 2013

Я недавно хотел сделать это, но мне не понравился формат вывода grideExtra или textplot, поэтому я написал эту функцию, чтобы сделать это в латексе. Это немного хакерская работа, и есть более эффективные способы с sweave или knitr, но вам может пригодиться изменение для ваших целей:

createPDF <- function(xx, name=deparse(substitute(xx))){
  require(xtable)
  tt <- print(xtable(xx), type='latex')
  texfile <- paste0('./reports/', name, '.tex')
  cat(
    '\\documentclass[12pt]{report}
\\usepackage[landscape]{geometry}
\\date{}
\\begin{document}', tt, '\\end{document}', sep='', 
    file=texfile
  )
  ## pdflatex from texlive package for linux converts .tex to .pdf
  system(paste0('pdflatex ', '-output-directory ./reports ', texfile))
}
4 голосов
/ 07 октября 2010

В пакете plotrix также есть функция addtable2plot.

0 голосов
/ 14 марта 2019

Вот одна строка, использующая мою библиотеку:

library(huxtable)
my_table <- table(mtcars$gear, mtcars$cyl)
quick_pdf(my_table) # produces a PDF in the current directory
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...