2017-02-06

Dividir y guardar como ficheros subconjuntos de un data frame con R


Problema

Queremos guardar cada subconjunto de un data frame como un fichero de texto en el directorio de trabajo. En este ejemplo, utilizamos el conjunto de datos iris y crearemos un fichero CSV por cada una de las especies de la columna Species: setosa, versicolor, y virginica.

head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

Solución

Utilizamos el siguiente bucle para filtrar el data frame y creas los ficheros.

for (name in levels(iris$Species)) {
  # Filtramos el data frame y seleccionamos las columnas
  tmp <- subset(iris, select = -Species, Species == name)
  # Crea un nuevo fichero por cada especie
  fn <- paste(gsub(" ", "", name), ".csv", sep = "")
  # Por cada especie, guarda un CSV en el directorio de trabajo
  write.csv(tmp, fn, row.names = FALSE)
} 

Resultado

En el directorio de trabajo, se habrán guardo los ficheros correspondientes.

No hay comentarios:

Publicar un comentario

Nube de datos