read - usando R para copiar archivos
leer csv en r (2)
Usted puede
- use
system()
para disparar un comando como si estuviera en shell, incluyendo globbing - use
list.files()
akadir()
para hacer el ajuste globbing / reg.exp usted mismo y copie los archivos individualmente - use
file.copy
en archivos individuales como se muestra en la respuesta de mjv
Como parte de una tarea más grande realizada en R ejecutada en Windows, me gustaría copiar los archivos seleccionados entre directorios. ¿Es posible dar dentro de R un comando como cp patha/filea*.csv pathb
(observe el comodín, para obtener más sabor)?
No creo que haya una manera directa (tímida de bombardeos), pero algo como el siguiente generalmente me funciona.
flist <- list.files("patha", "^filea.+[.]csv$", full.names = TRUE)
file.copy(flist, "pathb")
Notas:
- Me descompuse a propósito en dos pasos, se pueden combinar.
- Vea la expresión regular: R usa la expresión regular verdadera, y también separa el patrón del archivo de la ruta, en dos argumentos separados.
- observe los
^
y$
(inicio / fin de cadena) en la expresión regular - este es un resultado común, ya que están implícitos en patrones de tipo comodín, pero son necesarios con expresiones regulares (por ejemplo, algunos nombres de archivos que coinciden con el patrón de comodín y / o final con texto adicional seleccionado también). - En el mundo de Windows, las personas normalmente agregarán el argumento
ignore.case = TRUE
alist.files
, para emular el hecho de que las búsquedas de directorios no distinguen entre mayúsculas y minúsculas con este sistema operativo. - La función
glob2rx()
R proporciona una forma conveniente de convertir patrones comodín a expresiones regulares. Por ejemplofpattern = glob2rx(''filea*.csv'')
devuelve una expresión regular diferente pero equivalente.