2012-03-09 5 views
13

Oltre al reindirizzamento, che cattura un'intera sessione, esiste un modo per avviare e interrompere la registrazione durante una sessione R? Per chiarire, sto cercando qualcosa di simile al comando log using in Stata.Come si registra una sessione R su un file?

+0

Penso anche che questa è la domanda più stupida mai pubblicato, ma non c'è un tag "dumb-domanda". –

risposta

12

Conoscete lo sink() nella base R?

Ci sono anche alcuni pacchetti di registrazione su CRAN: logging, log4r e possibilmente di più.

Infine, l'utente di Emacs ha ESS e la sua modalità di trascrizione. È possibile salvare la sessione come un log e, in generale, l'approccio "lavora da file ed esegui dal file" crea un log (parziale, solo per i comandi) mentre lavori.

+0

sink() era esattamente quello che stavo cercando, ma chiamato completamente intuitivamente. Come ho detto nel mio commento, so che questo è stupido. Grazie! –

4

C'è savehistory(file) che scriverà l'intera cronologia come testo in chiaro oppure, se si sta tentando di registrare l'output, utilizzare sink(file, split = TRUE).

2

Oltre alla funzione sink si potrebbe anche guardare ai txtStart e le relative funzioni nel pacchetto TeachingDemos o la funzionalità simile nel pacchetto R2HTML (che è venuto prima).

2

Per il bene di completare la risposta utilizzando lavandino

# copy the log to a text file 
sink("./logofcode.txt") 
Your R code(s) goes here 
you can use a stored R code as well using source() 
source("./XS_SPEC_CF.R",echo=T, max.deparse.length=1e3) 
sink() 
+0

Da quando ho bisogno di fare questo molto spesso, mi sono convertito approccio di usct01 in una piccola funzione: 'source_with_log <- la funzione (r_script, log_file) { lavandino (file = log_file) fonte (r_script, eco = TRUE) lavandino() } ' –