Juan Abasolo
2016-Sep-09 10:09 UTC
[R-es] ¿Cómo generar tabla apaisada salida PDF con RMarkdown?
Muchas gracias, Jos Antonio y Carlos. Estaba por escribir sandeces varias. Comento, por si hay algn lector, que como yo, se guarda los correos con respuestas a problemas posibles. No estaba usando|header.tex|, que es necesario para una como para otra solucin. El encabezado queda as: |---|| ||title: "Tablas que no entran"|| ||author: "Sandia Urlia"|| ||date: ""|| ||output: || || pdf_document:|| || includes:|| || in_header: header.tex || ||--- | La solucin que coment Carlos (la de: http://stackoverflow.com/questions/25849814/rstudio-rmarkdown-both-portrait-and-landscape-layout-in-a-single-pdf) tiene la ventaja de que permite girar tablas generadas con |kable()| sin ms que poner tres lineas de cdigo tex. Importante dejar un espacio despus de terminar el chunk y antes de |\elandscape|. | ||\newpage|| ||\blandscape|| ||```{r }|| ||la.tabla.ancha <- cars[c(1:10),rep(1,14)]|| ||knitr::kable(la.tabla.ancha, caption = "La tablaza")|| ||```|| || ||\elandscape| Tambin sirve para girar cdigo o lo que haga falta. En el caso de arriba aparecen girados el cdigo y la tabla. En contra (o a favor) el entorno no es flotante, por lo que en el punto en el que se coloque ir la pgina nueva La solucin que coment jos Antonio requiere que en el documento header.tex se incluya la linea: | ||\usepackage{rotating} | Que, por otro lado, es lo que le faltaba al documento que haba presentado antes para poder funcionar. https://cran.r-project.org/web/packages/xtable/vignettes/xtableGallery.pdf (pag. 25) As qued el chunk |```{r results='asis'}|| library(xtable) ||x <- xtable(|| || la.tabla.ancha, caption = "La tablota (2)"|| || )|| ||options(xtable.comment = FALSE)|| ||print(x, floating = TRUE,|| || floating.environment = "sidewaystable"|| || )|| ||```| Pero atento! Que esta otra forma no funciona: | ||```{r results='asis'}|| ||options(xtable.comment = FALSE)|| ||print(|| || xtable::xtable(|| || la.tabla.ancha, caption = "La tablota (1)",|| || floating = TRUE,|| || floating.environment = "sidewaystable"|| || ))|| ||```| Para que funcione, tiene que estar generado el elemento |xtable| antes de |print()| y luego asignarlo. A favor (o en contra): el entorno que genera es flotante, por lo que se insertar segn las reglas de composicin de LaTeX y no ah mismo donde uno est escribiendo. Un posible header.tex para ver las dos soluciones: |||%para que rote con xtable ||\usepackage{rotating}|| %para girar a piacere ||\usepackage{lscape}|| ||\newcommand{\blandscape}{\begin{landscape}}|| ||\newcommand{\elandscape}{\end{landscape}}| og., 2016.eko iraren 08a 18:36(e)an, Carlos Ortega igorleak idatzi zuen:> Hola, > > Creo que esta referencia de StackOverflow te puede ayudar: > > http://stackoverflow.com/questions/25849814/rstudio-rmarkdown-both-portrait-and-landscape-layout-in-a-single-pdf > > Saludos, > Carlos Ortega > www.qualityexcellence.es <http://www.qualityexcellence.es> > > El 8 de septiembre de 2016, 17:28, Juan Abasolo <vcpabisj en gmail.com > <mailto:vcpabisj en gmail.com>> escribi: > > Buenas a todos. > > No me queda del todo claro si ste es el foro en el que preguntar > o debera ser otro, ya que incluye cosas que van ms all de R. > Sepan disculpar si me estoy excediendo. > > Estoy trabajando con RStudio y quiero generar un documento de > salida en PDF; en ese documento tengo bastantes tablas anchas que > no entran usando > > knitr::kable(la.tabla.ancha) > > S salen perfectamente en HTML (no son tan anchas). Me resulta > evidente que si las pudiera poner a pgina entera en formato > apaisado, no tendra problema y es lo que querra hacer. > > Intent conseguirlo usando 'xtable' con un cdigo que encontr por > ah. Pongo seguido un ejemplo para poner en un documento Rmd > > --- > title: "Tablas que no entran" > author: "Sandia Urlia" > date: "" > output: pdf_document > --- > > ```{r setup, include=FALSE} > knitr::opts_chunk$set(echo = TRUE) > ``` > > > ```{r} > la.tabla.ancha <- cars[c(1:10),rep(1,14)] > knitr::kable(la.tabla.ancha, caption = "La tablaza") > ``` > > > ```{r results='asis'} > options(xtable.comment = FALSE) > print( > xtable::xtable( > la.tabla.ancha, caption = "La-tablota", > floating = TRUE, > floating.environment = "sidewaystable", > type = "html" > )) > > ``` > Y as se ve que las tablas no entran :__( > > Muchas gracias > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > <https://stat.ethz.ch/mailman/listinfo/r-help-es> > > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es <http://www.qualityexcellence.es>-- Juan Abasolo Didaktika eta Eskola Antolakuntza saila Bilboko Irakasleen Unibertsitate Eskola 94 601 4624 Beste kontaktu batzuk Telegram: @JuanAbasolo Skype: abasolo72 [[alternative HTML version deleted]]
doblett
2016-Sep-23 06:56 UTC
[R-es] ¿Cómo generar tabla apaisada salida PDF con RMarkdown?
Hola Juan, aunque un poco tarde te comento. Yo suelo trabajar con tablas grandes sacando el codigo a latex (xtable) para obtener un pdf. La solución a tablas grandes la obtengo a través de un *print + scalebox:* *tmp <- xtable(mi.tabla)print(tmp, scalebox = 0.8, floating = FALSE)* La opción *floating* la uso para que se quede tal cual donde la dejo. Saludos!!! El 9 de septiembre de 2016, 12:09, Juan Abasolo <vcpabisj en gmail.com> escribió:> Muchas gracias, José Antonio y Carlos. > > Estaba por escribir sandeces varias. Comento, por si hay algún lector, > que como yo, se guarda los correos con respuestas a problemas posibles. > > No estaba usando|header.tex|, que es necesario para una como para otra > solución. > > El encabezado queda así: > |---|| > ||title: "Tablas que no entran"|| > ||author: "Sandia Urlia"|| > ||date: ""|| > ||output: || > || pdf_document:|| > || includes:|| > || in_header: header.tex || > ||--- > | > La solución que comentó Carlos (la de: > http://stackoverflow.com/questions/25849814/rstudio- > rmarkdown-both-portrait-and-landscape-layout-in-a-single-pdf) > tiene la ventaja de que permite girar tablas generadas con |kable()| sin > más que poner tres lineas de código tex. Importante dejar un espacio > después de terminar el chunk y antes de |\elandscape|. > > | > ||\newpage|| > ||\blandscape|| > ||```{r }|| > ||la.tabla.ancha <- cars[c(1:10),rep(1,14)]|| > ||knitr::kable(la.tabla.ancha, caption = "La tablaza")|| > ||```|| > || > ||\elandscape| > > También sirve para girar código o lo que haga falta. En el caso de > arriba aparecen girados el código y la tabla. > En contra (o a favor) el entorno no es flotante, por lo que en el punto > en el que se coloque irá la página nueva > > > La solución que comentó josé Antonio requiere que en el documento > header.tex se incluya la linea: > | > ||\usepackage{rotating} > > | > Que, por otro lado, es lo que le faltaba al documento que había > presentado antes para poder funcionar. > https://cran.r-project.org/web/packages/xtable/vignettes/xtableGallery.pdf > (pag. 25) > > Así quedó el chunk > > |```{r results='asis'}|| > library(xtable) > ||x <- xtable(|| > || la.tabla.ancha, caption = "La tablota (2)"|| > || )|| > ||options(xtable.comment = FALSE)|| > ||print(x, floating = TRUE,|| > || floating.environment = "sidewaystable"|| > || )|| > ||```| > > Pero atento! Que esta otra forma no funciona: > | > ||```{r results='asis'}|| > ||options(xtable.comment = FALSE)|| > ||print(|| > || xtable::xtable(|| > || la.tabla.ancha, caption = "La tablota (1)",|| > || floating = TRUE,|| > || floating.environment = "sidewaystable"|| > || ))|| > ||```| > Para que funcione, tiene que estar generado el elemento |xtable| antes > de |print()| y luego asignarlo. > > A favor (o en contra): el entorno que genera es flotante, por lo que se > insertará según las reglas de composición de LaTeX y no ahí mismo donde > uno está escribiendo. > > Un posible header.tex para ver las dos soluciones: > > | ||%para que rote con xtable > ||\usepackage{rotating}|| > > %para girar a piacere > ||\usepackage{lscape}|| > ||\newcommand{\blandscape}{\begin{landscape}}|| > ||\newcommand{\elandscape}{\end{landscape}}| > > > > og., 2016.eko iraren 08a 18:36(e)an, Carlos Ortega igorleak idatzi zuen: > > Hola, > > > > Creo que esta referencia de StackOverflow te puede ayudar: > > > > http://stackoverflow.com/questions/25849814/rstudio- > rmarkdown-both-portrait-and-landscape-layout-in-a-single-pdf > > > > Saludos, > > Carlos Ortega > > www.qualityexcellence.es <http://www.qualityexcellence.es> > > > > El 8 de septiembre de 2016, 17:28, Juan Abasolo <vcpabisj en gmail.com > > <mailto:vcpabisj en gmail.com>> escribió: > > > > Buenas a todos. > > > > No me queda del todo claro si éste es el foro en el que preguntar > > o debería ser otro, ya que incluye cosas que van más allá de R. > > Sepan disculpar si me estoy excediendo. > > > > Estoy trabajando con RStudio y quiero generar un documento de > > salida en PDF; en ese documento tengo bastantes tablas anchas que > > no entran usando > > > > knitr::kable(la.tabla.ancha) > > > > Sí salen perfectamente en HTML (no son tan anchas). Me resulta > > evidente que si las pudiera poner a página entera en formato > > apaisado, no tendría problema y es lo que querría hacer. > > > > Intenté conseguirlo usando 'xtable' con un código que encontré por > > ahí. Pongo seguido un ejemplo para poner en un documento Rmd > > > > --- > > title: "Tablas que no entran" > > author: "Sandia Urlia" > > date: "" > > output: pdf_document > > --- > > > > ```{r setup, include=FALSE} > > knitr::opts_chunk$set(echo = TRUE) > > ``` > > > > > > ```{r} > > la.tabla.ancha <- cars[c(1:10),rep(1,14)] > > knitr::kable(la.tabla.ancha, caption = "La tablaza") > > ``` > > > > > > ```{r results='asis'} > > options(xtable.comment = FALSE) > > print( > > xtable::xtable( > > la.tabla.ancha, caption = "La-tablota", > > floating = TRUE, > > floating.environment = "sidewaystable", > > type = "html" > > )) > > > > ``` > > Y así se ve que las tablas no entran :__( > > > > Muchas gracias > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > <https://stat.ethz.ch/mailman/listinfo/r-help-es> > > > > > > > > > > -- > > Saludos, > > Carlos Ortega > > www.qualityexcellence.es <http://www.qualityexcellence.es> > > -- > Juan Abasolo Didaktika eta Eskola Antolakuntza saila Bilboko Irakasleen > Unibertsitate Eskola 94 601 4624 Beste kontaktu batzuk Telegram: > @JuanAbasolo Skype: abasolo72 > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Juan Abasolo
2016-Sep-27 07:14 UTC
[R-es] ¿Cómo generar tabla apaisada salida PDF con RMarkdown?
Muchas gracias, de momento lo dejo en Stand By y lo doy por resuelto. Pero me queda para el siguiente lío. or., 2016.eko iraren 23a 08:56(e)an, doblett igorleak idatzi zuen:> Hola Juan, > aunque un poco tarde te comento. Yo suelo trabajar con tablas grandes > sacando el codigo a latex (xtable) para obtener un pdf. La solución a > tablas grandes la obtengo a través de un *print + scalebox: > > */tmp <- xtable(mi.tabla) > print(tmp, scalebox = 0.8, > floating = FALSE)/* > * > La opción *floating* la uso para que se quede tal cual donde la dejo. > > Saludos!!! > > > El 9 de septiembre de 2016, 12:09, Juan Abasolo <vcpabisj en gmail.com > <mailto:vcpabisj en gmail.com>> escribió: > > Muchas gracias, José Antonio y Carlos. > > Estaba por escribir sandeces varias. Comento, por si hay algún lector, > que como yo, se guarda los correos con respuestas a problemas > posibles. > > No estaba usando|header.tex|, que es necesario para una como para otra > solución. > > El encabezado queda así: > |---|| > ||title: "Tablas que no entran"|| > ||author: "Sandia Urlia"|| > ||date: ""|| > ||output: || > || pdf_document:|| > || includes:|| > || in_header: header.tex || > ||--- > | > La solución que comentó Carlos (la de: > http://stackoverflow.com/questions/25849814/rstudio-rmarkdown-both-portrait-and-landscape-layout-in-a-single-pdf > <http://stackoverflow.com/questions/25849814/rstudio-rmarkdown-both-portrait-and-landscape-layout-in-a-single-pdf>) > tiene la ventaja de que permite girar tablas generadas con > |kable()| sin > más que poner tres lineas de código tex. Importante dejar un espacio > después de terminar el chunk y antes de |\elandscape|. > > | > ||\newpage|| > ||\blandscape|| > ||```{r }|| > ||la.tabla.ancha <- cars[c(1:10),rep(1,14)]|| > ||knitr::kable(la.tabla.ancha, caption = "La tablaza")|| > ||```|| > || > ||\elandscape| > > También sirve para girar código o lo que haga falta. En el caso de > arriba aparecen girados el código y la tabla. > En contra (o a favor) el entorno no es flotante, por lo que en el > punto > en el que se coloque irá la página nueva > > > La solución que comentó josé Antonio requiere que en el documento > header.tex se incluya la linea: > | > ||\usepackage{rotating} > > | > Que, por otro lado, es lo que le faltaba al documento que había > presentado antes para poder funcionar. > https://cran.r-project.org/web/packages/xtable/vignettes/xtableGallery.pdf > <https://cran.r-project.org/web/packages/xtable/vignettes/xtableGallery.pdf> > (pag. 25) > > Así quedó el chunk > > |```{r results='asis'}|| > library(xtable) > ||x <- xtable(|| > || la.tabla.ancha, caption = "La tablota (2)"|| > || )|| > ||options(xtable.comment = FALSE)|| > ||print(x, floating = TRUE,|| > || floating.environment = "sidewaystable"|| > || )|| > ||```| > > Pero atento! Que esta otra forma no funciona: > | > ||```{r results='asis'}|| > ||options(xtable.comment = FALSE)|| > ||print(|| > || xtable::xtable(|| > || la.tabla.ancha, caption = "La tablota (1)",|| > || floating = TRUE,|| > || floating.environment = "sidewaystable"|| > || ))|| > ||```| > Para que funcione, tiene que estar generado el elemento |xtable| antes > de |print()| y luego asignarlo. > > A favor (o en contra): el entorno que genera es flotante, por lo > que se > insertará según las reglas de composición de LaTeX y no ahí mismo > donde > uno está escribiendo. > > Un posible header.tex para ver las dos soluciones: > > | ||%para que rote con xtable > ||\usepackage{rotating}|| > > %para girar a piacere > ||\usepackage{lscape}|| > ||\newcommand{\blandscape}{\begin{landscape}}|| > ||\newcommand{\elandscape}{\end{landscape}}| > > > > og., 2016.eko iraren 08a 18:36(e)an, Carlos Ortega igorleak idatzi > zuen: > > Hola, > > > > Creo que esta referencia de StackOverflow te puede ayudar: > > > > > http://stackoverflow.com/questions/25849814/rstudio-rmarkdown-both-portrait-and-landscape-layout-in-a-single-pdf > <http://stackoverflow.com/questions/25849814/rstudio-rmarkdown-both-portrait-and-landscape-layout-in-a-single-pdf> > > > > Saludos, > > Carlos Ortega > > www.qualityexcellence.es <http://www.qualityexcellence.es> > <http://www.qualityexcellence.es <http://www.qualityexcellence.es>> > > > > El 8 de septiembre de 2016, 17:28, Juan Abasolo > <vcpabisj en gmail.com <mailto:vcpabisj en gmail.com> > > <mailto:vcpabisj en gmail.com <mailto:vcpabisj en gmail.com>>> escribió: > > > > Buenas a todos. > > > > No me queda del todo claro si éste es el foro en el que > preguntar > > o debería ser otro, ya que incluye cosas que van más allá de R. > > Sepan disculpar si me estoy excediendo. > > > > Estoy trabajando con RStudio y quiero generar un documento de > > salida en PDF; en ese documento tengo bastantes tablas > anchas que > > no entran usando > > > > knitr::kable(la.tabla.ancha) > > > > Sí salen perfectamente en HTML (no son tan anchas). Me resulta > > evidente que si las pudiera poner a página entera en formato > > apaisado, no tendría problema y es lo que querría hacer. > > > > Intenté conseguirlo usando 'xtable' con un código que > encontré por > > ahí. Pongo seguido un ejemplo para poner en un documento Rmd > > > > --- > > title: "Tablas que no entran" > > author: "Sandia Urlia" > > date: "" > > output: pdf_document > > --- > > > > ```{r setup, include=FALSE} > > knitr::opts_chunk$set(echo = TRUE) > > ``` > > > > > > ```{r} > > la.tabla.ancha <- cars[c(1:10),rep(1,14)] > > knitr::kable(la.tabla.ancha, caption = "La tablaza") > > ``` > > > > > > ```{r results='asis'} > > options(xtable.comment = FALSE) > > print( > > xtable::xtable( > > la.tabla.ancha, caption = "La-tablota", > > floating = TRUE, > > floating.environment = "sidewaystable", > > type = "html" > > )) > > > > ``` > > Y así se ve que las tablas no entran :__( > > > > Muchas gracias > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > <mailto:R-help-es en r-project.org <mailto:R-help-es en r-project.org>> > > https://stat.ethz.ch/mailman/listinfo/r-help-es > <https://stat.ethz.ch/mailman/listinfo/r-help-es> > > <https://stat.ethz.ch/mailman/listinfo/r-help-es > <https://stat.ethz.ch/mailman/listinfo/r-help-es>> > > > > > > > > > > -- > > Saludos, > > Carlos Ortega > > www.qualityexcellence.es <http://www.qualityexcellence.es> > <http://www.qualityexcellence.es <http://www.qualityexcellence.es>> > > -- > Juan Abasolo Didaktika eta Eskola Antolakuntza saila Bilboko > Irakasleen > Unibertsitate Eskola 94 601 4624 Beste kontaktu batzuk Telegram: > @JuanAbasolo Skype: abasolo72 > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > <https://stat.ethz.ch/mailman/listinfo/r-help-es> > >-- Juan Abasolo Didaktika eta Eskola Antolakuntza saila Bilboko Irakasleen Unibertsitate Eskola 94 601 4624 Beste kontaktu batzuk Telegram: @JuanAbasolo Skype: abasolo72 [[alternative HTML version deleted]]