Estoy buscando información sobre cómo otros organizan su código R y su salida.
Mi práctica actual es escribir código en bloques en un archivo de texto como tal:
#=================================================
# 19 May 2011
date()
# Correlation analysis of variables in sed summary
load("/media/working/working_files/R_working/sed_OM_survey.RData")
# correlation between estimated surface and mean perc.OM in epi samples
cor.test(survey$mean.perc.OM[survey$Depth == "epi"],
survey$est.surf.OM[survey$Depth == "epi"]))
#==================================================
Luego pego el resultado en otro archivo de texto, generalmente con alguna anotación.
Los problemas con este método son:
- El código y la salida no están vinculados explícitamente excepto por fecha.
- El código y la salida están organizados cronológicamente y, por lo tanto, pueden ser difíciles de buscar.
He considerado hacer un documento de Sweave con todo, ya que podría hacer una tabla de contenido, pero parece que puede ser más complicado que los beneficios que proporcionaría.
Avíseme de cualquier rutina efectiva que tenga para organizar su código R y su salida que permita una búsqueda y edición eficientes del análisis.
r
project-management
DQdlM
fuente
fuente
sink()
ocapture.output()
podrían ser tus amigos. Vale la pena considerar las utilidades de informes, como Hmisc , Sweave o brew (su punto 1). Los sistemas de versiones ( rcs , svn o git ) podrían ayudar con el punto 2.sink()
ycapture.output()
. Eso es genial.Respuestas:
No eres la primera persona en hacer esta pregunta.
fuente
Por mi parte, organizo todo en 4 archivos para cada proyecto o análisis. (1) 'código' Donde almaceno archivos de texto de funciones R. (2) 'sql' Donde guardo las consultas utilizadas para recopilar mis datos. (3) 'dat' Donde guardo copias (generalmente csv) de mis datos sin procesar y procesados. (4) 'rpt' Donde guardo los informes que he distribuido.
TODOS mis archivos se nombran usando nombres muy detallados como 'analysis_of_network_abc_for_research_on_modified_buffer_19May2011'
También escribo documentación detallada por adelantado donde organizo la hipótesis, cualquier suposición, criterios de inclusión y exclusión, y los pasos que tengo la intención de tomar para alcanzar mi entregable. Todo esto es invaluable para la investigación repetible y hace que mi proceso anual de establecimiento de objetivos sea más fácil.
fuente
Ahora que hice el cambio a Sweave, nunca quiero volver. Especialmente si tiene gráficos como salida, es mucho más fácil hacer un seguimiento del código utilizado para crear cada gráfico. También hace que sea mucho más fácil corregir una cosa menor al principio y hacer que pase por la salida sin tener que volver a ejecutar nada manualmente.
fuente
.RData
archivo, para ingresarlos en el documento de Sweave. Sin embargo, también hay varias opciones excelentes para "almacenar en caché" los resultados de un fragmento de código para que no se vuelva a ejecutar.Para estructurar archivos de código .R únicos , también puede usar strcode , un complemento de RStudio que creé para insertar separadores de código (con títulos opcionales) y, en función de ellos, obtener resúmenes de archivos de código. Explico su uso con más detalle en esta publicación de blog .
fuente