Francisco García García (2014-12-16)
R genera diversos tipos de resultados: tablas, gráficos…. ¿cómo podemos guardar estos resultados?
Existen varias opciones. Escogeremos aquella que mejor se ajuste a lo que queremos realizar después con los resultados.
En ocasiones sólo queremos salvar los resultados no gráficos. En ese caso utilizaremos las función sink y especificaremos un fichero de texto donde se guardarán los resultados obtenidos.
Primero comprobamos cuál es el working directory:
getwd()
#> [1] "/home/paco/Dropbox/github/tutorR"
Es posible cambiar el working directory con la función setwd() Con la función sink decimos que la salida de R será el fichero de texto que indiquemos:
sink("resultados.txt")
a <- c(1, 2, 3, 5)
summary(a)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 1.00 1.75 2.50 2.75 3.50 5.00
print(a)
#> [1] 1 2 3 5
Si ya hemos terminado de guardar resultados, redirigimos otra vez la salida a la pantalla (como estaba al principio)
sink()
print(a)
#> [1] 1 2 3 5
Tras generar una base de datos (data.frame o matrix) es posible guardar ese objeto específico con varias funciones como write.table, write.csv o write.matrix:
talla <- c(150, 156, 166, 175, 175)
peso <- c(75, 70, 72, 80, 55)
provincia <- c("Alicante", "Castellon", "Valencia", "Valencia", "Alicante")
datos <- as.data.frame(cbind(talla, peso, provincia))
datos
#> talla peso provincia
#> 1 150 75 Alicante
#> 2 156 70 Castellon
#> 3 166 72 Valencia
#> 4 175 80 Valencia
#> 5 175 55 Alicante
write.table(datos, "misdatos.txt", sep = "\t", quote = F, row.names = F)
Con las funciones save y save.image es posible guardar todos o algunos específicos objetos generados en la sesión de R. Luego los volveremos a cargar en la sesión con la función load. Vemos un ejemplo:
talla <- c(150, 156, 166, 175, 175)
peso <- c(75, 70, 72, 80, 55)
provincia <- c("Alicante", "Castellon", "Valencia", "Valencia", "Alicante")
datos <- as.data.frame(cbind(talla, peso, provincia))
datos
#> talla peso provincia
#> 1 150 75 Alicante
#> 2 156 70 Castellon
#> 3 166 72 Valencia
#> 4 175 80 Valencia
#> 5 175 55 Alicante
Más objetos:
datos2 <- datos[, 1:2]
head(datos2)
#> talla peso
#> 1 150 75
#> 2 156 70
#> 3 166 72
#> 4 175 80
#> 5 175 55
¿Qué objetos tenemos en la sesión?
ls()
#> [1] "a" "base" "bases" "datos" "datos2" "peso"
#> [7] "provincia" "talla"
Guardamos todos los objetos en un único fichero específico de R:
save.image(file = "resultados.RData")
Cargamos todos los objetos en la sesión de R:
load("resultados.RData")
Si sólo queremos guardar alguno o algunos objetos, se puede salvar con la función save:
save(datos, datos2, file = "dosresultados.RData")
Si tenemos acceso a una consola, se podría ejecutar un script con la línea de comando R CMD BATCH, generándose un fichero con todos los resultados:
#R CMD BATCH script.R