Pegar una ruta de archivo al principio de cada elemento de una lista de caracteres de nombres de archivo en R.
Tengo un vector de caracteres con nombres de archivos de una carpeta que necesito transformar en rutas de archivos individuales para que cada elemento de la lista tenga la ruta de archivo completa que luego se pueda manipular usando xmlParse
. El vector de caracteres se creó utilizando el siguiente código de ejemplo:
files <- list.files(path = "C:\Users\Documents\XML")
class(files)
[1] "character"
La salida se ve así (en realidad hay más de 60 archivos, pero se ha condensado aquí para el ejemplo):
> files
[1] "file1.xml" "file2.xml"
[3] "file3.xml" "file4.xml"
[5] "file5.xml" "file6.xml"
Necesito recorrer este vector de alguna manera y agregar la parte inicial de la ruta para cada nombre de archivo para que luego puedan ser accesibles en un bucle más adelante. He intentado varias combinaciones de lapply
, paste0
, sapply
y paste
, pero sigo obteniendo errores en el código.
Aquí hay un par de ejemplos de intentos y errores:
home.path <- ("C:\Users\Documents\XML")
filepaths <- lapply(files, paste0(home.path))
> filepaths <- lapply(files, paste0(home.path))
Error in get(as.character(FUN), mode = "function", envir = envir) :
object 'C:\Users\Documents\XML' of mode 'function' was not found
filepaths <- sapply(files, paste0(home.path, var, sep = ""))
> filepaths <- sapply(files, paste0(home.path, var, sep = ""))
Error in paste0(home.path, var, sep = "") :
cannot coerce type 'closure' to vector of type 'character'
Si esto funcionara como yo quería, debería devolver lo siguiente:
> filepaths
[1] "C:\Users\Documents\XML\file1.xml"
[2] "C:\Users\Documents\XML\file2.xml"
[3] "C:\Users\Documents\XML\file3.xml"
...
davy.ai
Para transformar el vector de caracteres de nombres de archivo en rutas de archivo individuales con la ruta completa, podemos utilizar la función
paste
en combinación con la funciónfile.path
. Aquí hay un ejemplo de código:“`{r}
establecer el directorio de trabajo en la carpeta que contiene los archivos
setwd(“C:\Users\Documents\XML”)
utilizar list.files para obtener los nombres de archivo
files <- list.files()
crear las rutas de archivo completas
filepaths <- file.path(getwd(), files)
verificar el resultado
filepaths
“`
Este código primero establece el directorio de trabajo en la carpeta que contiene los archivos utilizando
setwd
. Luego utilizalist.files
para obtener los nombres de archivo en la carpeta.Finalmente, crea las rutas de archivo completas utilizando
file.path
, que concatena el directorio de trabajo y los nombres de archivo con el separador de archivos apropiado para el sistema operativo. El resultado es un vector de caracteres con las rutas de archivo completas para cada nombre de archivo.Ahora podemos utilizar este vector
filepaths
conxmlParse
para manipular los archivos en un bucle u otra forma.