Escribiendo datos
Resumen
Enseñando: 10 min
Ejercicios: 10 minPreguntas
¿Cómo puedo guardar gráficos y datos creados en R?
Objectivos
Poder escribir gráficos y datos en R.
Guardando gráficos
Puedes guardar un gráfico desde RStudio con el botón ‘Export’ en la ventana ‘Plot’. Esto te dará la opción de guardar como .pdf o como .png, .jpg u otros formatos de imagen.
A veces querrás guardar gráficos sin crearlos en la
ventana ‘Plot’ primero. Quizás quieras hacer un documento pdf con
múltiples páginas: cada una con un gráfico diferente, por ejemplo. O quizás
estás recorriendo múltiples subconjuntos de un archivo, graficando datos de
cada subconjunto y deseas guardar cada gráfico.
En este caso, puedes utilizar un enfoque más flexible.
La función pdf ()
crea un nuevo dispositivo pdf. Puedes controlar el tamaño y la resolución
usando los argumentos de esta función.
pdf("Distribution-of-gdpPercap.pdf", width=12, height=4)
ggplot(data = gapminder, aes(x = gdpPercap)) +
geom_histogram()
# ¡Debes asegurarte de apagar el dispositivo pdf!
dev.off()
Abre este documento y échale un vistazo.
Desafío 1
Reescribe tu comando ‘pdf’ para imprimir una segunda página en el pdf, mostrando el gráfico side-by-side bar de pib per cápita en países de las Américas en los años 1952 y 2007 que creaste en el episodio previo.
Solución al desafío 1
pdf("Distribution-of-gdpPercap.pdf", width = 12, height = 4) ggplot(data = gapminder, aes(x = gdpPercap)) + geom_histogram() ggplot(data = gapminder_small_2, aes(x = country, y = gdpPercap, fill = as.factor(year))) + geom_col(position = "dodge") + coord_flip() dev.off()
Los comandos jpeg
, png
, etc. se usan de manera similar para producir
documentos en diferentes formatos.
Escribiendo datos
En algún momento, también querrás escribir datos para usarlos fuera de R.
Podemos usar la función write.csv
para esto, que es
muy similar a read.csv
que vimos antes.
Vamos a crear un script de limpieza de datos, para este análisis, sólo queremos centrarnos en los datos de gapminder para Australia:
aust_subset <- filter(gapminder, country == "Australia")
write.csv(aust_subset,
file="cleaned-data/gapminder-aus.csv"
)
Abrimos el archivo para asegurarnos de que contiene los datos que esperamos. Navega a tu
directorio cleaned-data
y haz doble clic en el nombre del archivo. Se abrirá usando el
programa que está configurado por defecto en tu computadora para abrir archivos con extensión .csv
. Para abrir en una aplicación específica, haz clic derecho y selecciona la aplicación.Usando un programa de hoja de cálculo (como Excel) para abrir este archivo nos muestra que tenemos datos con el formato correcto incluyendo solo los datos de Australia. Sin embargo, hay números de fila asociados con los datos que no nos son útiles (se refieren a los números de fila
del conjunto de datos gapminder).
Veamos el archivo de ayuda para averiguar cómo cambiar este comportamiento.
?write.csv
Por defecto, R escribirá la fila y los nombres de las columnas al escribir datos en un archivo. Para cambiar este comportamiento, podemos hacer lo siguiente:
write.csv(
aust_subset,
file="cleaned-data/gapminder-aus.csv",
row.names=FALSE
)
Desafío 2
Filtra los datos de gapminder para incluir solo los datos que se recolectaron desde 1990. Escribe el nuevo subconjunto en un archivo en el directorio
clean-data/
.Solución al desafío 2
gapminder_after_1990 <- filter(gapminder, year > 1990) write.csv(gapminder_after_1990, file = "cleaned-data/gapminder-after-1990.csv", row.names = FALSE)
Puntos Clave
Guardar gráficos con
ggsave()
opdf()
combinado condev.off()
.Usar
write.csv
para guardar datos tabulares.