Cómo manipular archivos en r

De vez en cuando, es posible que desee escribir un guión en I que va a atravesar una carpeta determinada y realizar acciones en todos los datos en los archivos o un subconjunto de archivos en esa carpeta.

Para obtener una lista de los archivos en una carpeta específica, utilice list.files () o dir (). Estas dos funciones de hacer exactamente lo mismo, pero por razones de compatibilidad con versiones anteriores, la misma función tiene dos nombres:

gt; list.files (file.path ("F:", "Git", "roxygen2")) [1] "roxygen2" "roxygen2.Rcheck"[3] "roxygen2_2.0.tar.gz" "roxygen2_2.1.tar.gz"
FunciónDescripción
Iist.filesMuestra una lista de archivos en un directorio.
list.dirsMuestra una lista de los subdirectorios de un directorio.
El archivo existeComprueba si existe un archivo específico en un lugar.
file.createCrea un archivo.
file.removeElimina los archivos y directorios (en sistemas operativos Unix).
tempfileDevuelve el nombre de un archivo temporal. Si crea un archivo
- por ejemplo, con file.create ()
o write.table () el uso de este nombre devuelto
- R creará un archivo en una carpeta temporal.
tempdirDevuelve la ruta del archivo de una carpeta temporal en su archivo
sistema.

A continuación, se llega a ejercer todos sus conocimientos acerca de cómo trabajar con archivos. En el siguiente ejemplo, primero se crea un archivo temporal, a continuación, guardar una copia de la iris trama de datos a este archivo. Para comprobar que el archivo está en el disco, a continuación, lee el archivo recién creado a una nueva variable e inspeccionar esta variable. Por último, se elimina el archivo temporal del disco.

Comience usando el tempfile () función para devolver un nombre a una cadena de caracteres con el nombre de un archivo en una carpeta temporal del sistema:

gt; mi archivo lt; - tempfile () gt; my.file [1] "C: Users Andrie AppData Local Temp RtmpGYeLTj file14d4366b6095"

Observe que el resultado es puramente una cadena de caracteres, no un archivo. Este archivo no existe aún ninguna parte. A continuación, se guarda una copia de la trama de datos iris a mi archivo utilizando el write.csv () función. A continuación, utilice list.files () para ver si R creó el archivo:

gt; write.csv (iris, file = my.file) gt; list.files (tempdir ()) [1] "file14d4366b6095"

Como se puede ver, R creó el archivo. Ahora se puede utilizar read.csv () para importar los datos a una nueva variable llamada file.iris:

gt; file.iris lt; - read.csv (my.file)

Utilizar str () para investigar la estructura de file.iris. Como se esperaba file.iris es un marco de datos de 150 observaciones y seis variables. Seis variables, dice usted? Sí, seis, aunque el original iris sólo tiene cinco columnas.

Lo que sucedió aquí fue que el valor por defecto del argumento row.names de read.csv () es row.names = TRUE. (Se puede confirmar esto tomando una mirada cercana a la ayuda para ?read.csv ().) Por lo tanto, R guarda los nombres de las filas originales de iris a una nueva columna llamada x:

gt; str (file.iris) `data.frame`: 150 obs. de 6 variables: $ X: int 1 2 3 4 5 6 7 8 9 10 ... $ Sepal.Length: num 5,1 4,9 4,7 4,6 5 5,4 4,6 5 4,4 4,9 ... $ Sepal.Width: num 3,5 3 3,2 3,1 3,6 3,9 3,4 3,4 2,9 3,1 ... $ Petal.Length: num 1,4 1,3 1,5 1,4 1,4 1,7 1,4 1,5 1,4 1,5 ... $ Petal.Width: num 0,2 0,2 ​​0,2 ​​0,2 ​​0,2 ​​0,4 0,3 0,2 0,2 ​​0,1 ... $ Especie: Factor w / 3 niveles "setosa","versicolor"..: 1 1 1 1 1 1 1 1 1 1 ...

Para dejar el sistema de archivos en su orden original, puede utilizar file.remove () para borrar el archivo temporal:

gt; file.remove (my.file) gt; list.files (tempdir ()) carácter (0)

Como se puede ver, el resultado de list.files () es una cadena de caracteres vacía, porque el archivo ya no existe en esa carpeta.

Artículos Relacionados