[R-es] Como exportar desde Consola R?
rubenfcasal
rubenfcasal en gmail.com
Mar Abr 8 11:54:18 CEST 2014
Hola a todos,
Yo acostumbro a realizar simulaciones y analizar conjuntos de datos
periódicamente. En la mayoría de los casos en los que necesito hacer
informes utilizo un código propio basado en el paquete R2HTML (tengo
pensado convertirlo en paquete cuando tenga tiempo).
La idea es obtener fácilmente unos resultados que se parezcan a los
obtenidos con un software comercial como el SPSS, para facilitar el
navegar por los resultados, hacer comparaciones, etc. Para ello lo único
que hice fue combinar los informes html del paquete R2HTML con un menú a
la izquierda (ademas los archivos correspondientes se guardan en un
subdirectorio) . Una de las ventajas respecto a knitr sería que no es
necesario compilar y se pueden ir añadiendo resultados sobre la marcha
(podríamos decir que desde R se controlan los resultados, en lugar de
que el sistema de resultados controle R) .
Os envío el código como adjunto por si os resulta de interés. En el
fichero zip está un análisis automático de un fichero de datos (una
encuesta que empleamos en la docencia de estadística) como ejemplo de
como utilizar esta herramienta. Abrir el fichero html para ver el
'informe' (se podría abrir desde word...).
Un saludo,
Rubén Fernández Casal.
El 08/04/2014 1:07, "Marcuzzi, Javier Rubén" escribió:
> Yo comparto lo expuesto por Carlos Gil Bellosta, creo que para cuándo
> uno trabaja en un ambiente personal, me refiero, a No buscar reportes
> para terceros, knitr puede ser de ayuda, porque podría colocar un
> modelo sobre el otro e imprimirlos o guardar como html, sin tener la
> necesidad de procesar con R, compilar a pdf, etc.
>
> Pero, hay que escribir en las reglas de knitr. Creo que es más fácil
> escribir desde cero (copiando y pegando) que adaptar a que R escriba
> archivos txt para analizarlos.
>
> Javier Marcuzzi
>
> El 07/04/2014 08:41 a.m., Carlos J. Gil Bellosta escribió:
>> Usa knitr sobre RStudio.
>>
>> Un saludo,
>>
>> Carlos J. Gil Bellosta
>> http://www.datanalytics.com
>>
>> El día 7 de abril de 2014, 12:28, Lorena Tudela Marco
>> <lorenatudelamarco en gmail.com> escribió:
>>> Hola a tod en s
>>>
>>> Estoy trabajando con modelos diferentes en R y me gustaría poder
>>> estudiar
>>> mas detalladamente los resultados obtenidos en la Consola de R.
>>>
>>> *¿Como puedo exportar los resultados de la consola de R a word o pdf?*
>>>
>>> Aprovecho para agradecer y felicitaros por este espacio de debate y
>>> trabajo, creo que realmente es bien interesante y útil poder compartir
>>> dudas y sugerencias,
>>>
>>> Muchas gracias,
>>>
>>> Un abrazo
>>>
>>> Lorena
>>>
>>> [[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
>>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
------------ próxima parte ------------
#------------------------------------------------------------------------
# R2HTML2: Utilities to generate reports with the R2HTML package
# require(R2HTML)
# -------------------------------------------------------------------
# html2.init
# html2.exit
# .html.initfile
# .html.menu.tit
# .html.menu.subtit
# .html.main.marc
# html2.title
# html2.subtitle
# html2
# html2.graph
# html2.png
# -------------------------------------------------------------------
# Copyright (C) 2002-2004 - R2HTML Package - Eric Lecoutre
# Copyright (C) 2011-2014 - Ruben Fernandez Casal - rubenfcasal <at> gmail <dot> com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#------------------------------------------------------------------------
#--------------------------------------------------------
# html2.init
#--------------------------------------------------------
html2.init <- function(file="Report", dir=getwd(), css="Pastel.css", logo="R2HTMLlogo.gif")
{
if(!require(R2HTML)) stop("R2HTML package is required.")
.html.env <<- new.env()
.html.env$NumMarc <- 0
.html.env$NumGraph <- 0
.html.env$NumAna <- 0
.html.env$file <- file
.html.env$dir <- dir
.html.env$dirw <- file.path(dir,paste(file,"_files",sep=""))
if (!file.exists(.html.env$dirw)) dir.create(.html.env$dirw)
file.copy(file.path(tempdir(), css), file.path(.html.env$dirw, css))
file.copy(file.path(tempdir(), "R2HTMLlogo.gif"), file.path(.html.env$dirw, "R2HTMLlogo.gif"))
.html.env$logo <- logo
.html.env$absfile <- .html.initfile(outdir=dir, filename=file, Title=file, CSSFile=css, logo=.html.env$logo)
.html.env$relmainfile <- paste(file,"_main.html",sep="")
.html.env$mainfile <- file.path(.html.env$dirw,.html.env$relmainfile)
.html.env$menufile <- file.path(.html.env$dirw,paste(file,"_menu.html",sep=""))
.html.env$WGraphHTML <- 600 #Tamaño gráficos HTML
return(list(file=file,dir=dir,css=css))
}
#--------------------------------------------------------
# html2.exit
#--------------------------------------------------------
html2.exit <- function(browse = TRUE)
{
# HTMLEndFile()
cat("\n<hr size=1>\n<font size=-1>\n\t Generated on: <i>",
date(), "</i> - <b>R2HTML(2)</b> \n<hr size=1>\n\t</body>\n</html>",
sep = "", append = TRUE, file = get(".HTML.file"))
file <- file.path(.html.env$dir,paste(.html.env$file,".html",sep=""))
if (browse) browseURL(url= file)
rm(.html.env, envir=.GlobalEnv)
return(file)
}
#--------------------------------------------------------
# .html.initfile
#--------------------------------------------------------
.html.initfile <- function (outdir = tempdir(), filename = "index", extension = "html", BackGroundColor = "FFFFFF", BackGroundImg = "",
Title = "R output", CSSFile = "R2HTML.css", logo="R2HTMLlogo.gif", useLaTeX = FALSE, useGrid = FALSE)
{
# HTMLframe = TRUE
filemenu <- paste(filename, "_files/", filename, "_menu.", extension, sep = "")
filemain <- paste(filename, "_files/", filename, "_main.", extension, sep = "")
absfilemenu <- file.path(outdir, filemenu)
file <- absfilemain <- file.path(outdir, filemain)
absfileindex <- file.path(outdir, paste(filename, ".", extension, sep = ""))
assign(".HTML.file", absfilemain, env = .GlobalEnv)
cat(paste("<html><head>\t\n <title>", Title, "</title>\n <meta http-equiv=content-type content=text/html;charset=iso-8859-1>\n <frameset cols=250,* border=1 frameborder=yes><frame src=",
filemenu, " name=menu scrolling=yes><frame src=",
filemain, " name=main scrolling=yes></frameset></body></html>"),
append = FALSE, sep = "", file = absfileindex)
cat("<html><head><link rel=stylesheet href=", CSSFile,
" type=text/css> </head><body bgcolor=\"#E5F5FF\"> <center> <img src=",logo," width=\"164\"> <hr size=1></center><br>",
sep = "", append = FALSE, file = absfilemenu)
txt <- ifelse(useLaTeX, "<html xmlns:mml=\"http://www.w3.org/1998/Math/MathML\">", "<html>")
txt <- c(txt, "<head>")
txt <- c(txt, paste("<title>", Title, "</title>"))
txt <- c(txt, paste("<link rel=stylesheet href=\"", CSSFile, "\" type=text/css>", sep = ""))
if (useLaTeX)
txt <- c(txt, "<object id=\"mathplayer\" classid=\"clsid:32F66A20-7614-11D4-BD11-00104BD3F987\"></object>\n<?import namespace=\"mml\" implementation=\"#mathplayer\"?>\n<script type=\"text/javascript\" src=\"ASCIIMathML.js\"></script>")
if (useGrid) {
txt <- c(txt, HTMLgrid_references())
txt <- c(txt, "<script>\n nequations=0;\n</script>")
}
txt <- c(txt, "</head>")
body <- c("<body")
if (useLaTeX)
body = c(body, " onload=\"translate()\"")
body = c(body, paste(" bgcolor=", BackGroundColor))
if (!is.null(BackGroundImg))
body = c(body, paste(" background=\"", BackGroundImg, "\"", sep = ""))
body <- c(body, " >")
body = paste(body, collapse = "")
txt <- c(txt, body)
txt <- paste(txt, collapse = "\n")
cat(txt, file = absfilemain, append = FALSE)
return(invisible(absfileindex))
}
#--------------------------------------------------------
# .html.menu.tit
#--------------------------------------------------------
.html.menu.tit <- function(title, file=.html.env$menufile, Num=.html.env$NumMarc, target=.html.env$relmainfile, append=TRUE,...)
{
cat("\n",file=file,append=append,...)
cat(paste("<br></li><li><a class=partitle href='./",target,"#Num",Num,"' target=main> ",paste(title,collapse=""),"</a>",sep=""),file=file,append=TRUE,sep="")
}
#--------------------------------------------------------
# .html.menu.subtit
#--------------------------------------------------------
.html.menu.subtit <- function(title, file=.html.env$menufile, Num=.html.env$NumMarc, target=.html.env$relmainfile, append=TRUE,...)
{
cat("\n",file=file,append=append,...)
cat(paste("<br><dd><NOBR><a class=command href='./",target,"#Num",Num,"' target=main>",paste(title,collapse=""),"</a></NOBR>",sep=""),file=file,append=TRUE,sep="")
}
#--------------------------------------------------------
# .html.main.marc
#--------------------------------------------------------
.html.main.marc <- function(file=.html.env$mainfile)
{
.html.env$NumMarc <- .html.env$NumMarc + 1
cat(paste("<a name=Num", .html.env$NumMarc, "> </a>", sep = ""), file = file, sep = "", append = TRUE) # CAT
}
#--------------------------------------------------------
# html2.title
#--------------------------------------------------------
html2.title <- function(title= paste("Analysis",.html.env$NumAna), file=.html.env$mainfile, menufile=.html.env$menufile, target=.html.env$relmainfile)
{
.html.env$NumAna <- .html.env$NumAna + 1
.html.main.marc(file)
.html.menu.tit(title, menufile, .html.env$NumMarc, target = target)
HTML.title(title, HR=1, file=file) # R2HTML
return(invisible(.html.env$NumMarc))
}
#--------------------------------------------------------
# html2.subtitle
#--------------------------------------------------------
html2.subtitle <- function(title= paste("Analysis",.html.env$NumAna), file=.html.env$mainfile, menufile=.html.env$menufile, target=.html.env$relmainfile)
{
.html.main.marc(file)
.html.menu.subtit(title, menufile, .html.env$NumMarc, target = target)
HTML.title(title, HR=2, file=file) # R2HTML
return(invisible(.html.env$NumMarc))
}
#--------------------------------------------------------
# html2
#--------------------------------------------------------
html2 <- function(output= .Last.value, title=paste("· Output",class(output)[1]), file=.html.env$mainfile, menufile=.html.env$menufile, target=.html.env$relmainfile)
{
.html.env$Last <- output
html2.subtitle(title=title, file=file, menufile=menufile, target=target)
HTML(output, file=file) # R2HTML
HTMLbr(x=2,file=file,append=TRUE) # R2HTML
return(invisible(list(NumMarc=.html.env$NumMarc,title=title,file=file,menufile=menufile)))
}
#--------------------------------------------------------
# html2.graph
#--------------------------------------------------------
html2.graph <- function(title=paste("· Graph", .html.env$NumGraph), caption=NULL, filegraf=paste(.html.env$file,sprintf("%02i",.html.env$NumGraph),sep="-"), dir=.html.env$dirw, file=.html.env$mainfile, menufile=.html.env$menufile, target=.html.env$relmainfile)
{
.html.env$NumGraph <- .html.env$NumGraph + 1
html2.subtitle(title=title, file=file, menufile=menufile, target=target)
# Copia en pdf
savePlot(filename = file.path(dir, paste(filegraf,".pdf",sep="")), type = "pdf")
# Fin copia pdf
filegraf <- paste(filegraf,".png",sep="")
savePlot(filename = file.path(dir,filegraf), type = "png")
HTMLInsertGraph(filegraf, Caption=ifelse(is.null(caption), filegraf, caption), WidthHTML=.html.env$WGraphHTML, file=file) # R2HTML
HTMLbr(x=2,file=file,append=TRUE) # R2HTML
return(invisible(list(NumMarc=.html.env$NumMarc,title=title,file=file,menufile=menufile,NumGraph=.html.env$NumGraph)))
}
#--------------------------------------------------------
# html2.png (equivalent to png(); use dev.off() to shut down the device
#--------------------------------------------------------
html2.png <- function(title=paste("· Gráfico", .html.env$NumGraph), caption=NULL, filegraf=paste(.html.env$file,sprintf("%02i",.html.env$NumGraph),sep="-"), dir=.html.env$dirw, file=.html.env$mainfile, menufile=.html.env$menufile, target=.html.env$relmainfile)
{
.html.env$NumGraph <- .html.env$NumGraph + 1
html2.subtitle(title=title, file=file, menufile=menufile, target=target)
filegraf <- paste(filegraf,".png",sep="")
png(filename = file.path(dir,filegraf), width = .html.env$WGraphHTML, height = .html.env$WGraphHTML)
HTMLInsertGraph(filegraf, Caption=ifelse(is.null(caption), filegraf, caption), WidthHTML=.html.env$WGraphHTML, file=file) # R2HTML
HTMLbr(x=2,file=file,append=TRUE) # R2HTML
return(invisible(list(NumMarc=.html.env$NumMarc,title=title,file=file,menufile=menufile,NumGraph=.html.env$NumGraph)))
}
# ## Ejemplo html2
#
# html2.init() # html2.init(css="R2HTML.css", logo="../RHtmlUdcLogo2.gif")
# # html2.init(css="SciViews.css")
#
# html2.title()
# res <- summary(x <- rnorm(100))
# html2(res)
# plot(x)
# html2.graph()
# html2.title()
# hist(x)
# html2.graph()
# html2(t.test(x))
# html2.title("Coidado con source xunto a html2()")
# HTML.title("Empregar html2() despois de evaluar interactivamente")
# HTML("Debería xerar o resultado anterior:")
# t.test(x)
# html2()
#
# #html2.png()
# #hist(x)
# #dev.off()
#
# html2.exit() # HTMLEndFile()
#
# ## END html2
------------ próxima parte ------------
## Ejemplo html2
source("R2HTML2.R")
html2.init() # Iniciar con los valores por defecto
# Alternativamente p.e. html2.init('Resultados', css="R2HTML.css", logo="../RHtmlUdcLogo2.gif")
html2.title() # Titulo por defecto
res <- summary(x <- rnorm(100))
html2(res) # Resultado con subtítulo por defecto
plot(x)
html2.graph() # Gráfico con subtítulo por defecto
# NOTA: actualmente guarda también una copia del gráfico en formato pdf en el subdirectorio del informe
html2.title('Análisis de x')
hist(x)
html2.graph('Histograma de x')
html2(t.test(x), 'Test-t de x')
html2.title("Cuidado con 'source' junto a 'html2()'")
HTML.title("Utilizar 'html2()' después de evaluar interactivamente") # Compatible con 'R2HTML'
HTML("Debería generar el resultado anterior:")
t.test(x)
html2()
#html2.png()
#hist(x)
#dev.off()
html2.exit() # HTMLEndFile()
## END html2
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: Ejemplo.zip
Type: application/x-compressed
Size: 304183 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20140408/dc3ca901/attachment-0001.bin>
Más información sobre la lista de distribución R-help-es