studio - tabla de frecuencias en r
Crear una tabla PDF (4)
Recientemente quise hacer esto pero no me gustó el formato de salida de grideExtra
o textplot
así que escribí esta función para hacerlo en latex. Es un poco un trabajo de hackeo y hay mejores maneras con sweave
o knitr
, pero puede que le resulte útil modificarlo para sus propósitos:
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))
}
¿Hay alguna manera de producir un PDF de una tabla desde R de la misma manera que se produce una gráfica (es decir, con pdf () o ggsave ())? Me doy cuenta de que hay maneras con otros programas (usando sweave, etc.), pero me gustaría producirlo solo desde R.
Sí, existe como puede colocar texto en gráficos y, por lo tanto, en dispositivos PDF.
La envoltura más bonita para esto puede ser la función textplot()
en el paquete gplots confianza de Greg Warnes. A continuación se muestra el comienzo de la sección de ejemplos de su página de ayuda:
# 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))
También está la función addtable2plot en el paquete plotrix.
ver también grid.table
en gridExtra
, usando gráficos de cuadrícula.