studio read leer importar exportar datos commander cargar r file copy

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() aka dir() 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 a list.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 ejemplo fpattern = glob2rx(''filea*.csv'') devuelve una expresión regular diferente pero equivalente.