Error: se esperaba “<" al leer archivos .xlsx y .xls en R con el paquete readxl.
Estoy leyendo un conjunto de archivos de Excel en R utilizando el paquete readxl
y un bucle for
. Aquí está mi código simplificado:
filelist = list.files(input.dir) # obtener lista de archivos de Excel
for (i in seq_along(filelist)){
read_excel(filelist[i], col_names=F)
}
Puedo leer algunos archivos sin problemas. Otros se leen, pero el resultado es una tabla vacía (0x0). Otros archivos detienen el bucle y generan el mensaje de error:
Error: expected <```
Puedo resolver el problema abriendo un archivo problemático, haciendo una edición menor y guardando el archivo. Sin embargo, no es factible hacer esto para cada archivo, tengo más de 1,000 en total. Puede encontrar un subconjunto de mis archivos de Excel aquí. Como referencia, “AMEX1-61-2020-PH.xlsx” es uno de los archivos problemáticos que genera el mensaje de error. Estoy utilizando la versión 1.3.1 de readxl
y la versión 4.1.1 de R. ¡Gracias!
davy.ai
Parece que el problema se debe a algún problema de formato o codificación en los archivos de Excel problemáticos. Una solución podría ser intentar usar el paquete
openxlsx
en lugar dereadxl
, y también especificar la codificación de manera explícita de la siguiente manera:Aquí, el parámetro
startRow
especifica desde qué fila comenzar a leer los datos (el valor predeterminado es 1), ycolNames
especifica si la primera fila contiene nombres de columna (el valor predeterminado es TRUE). El parámetrodetectDates
se establece en TRUE en caso de que alguna columna de fechas se reconozca automáticamente como fechas. El parámetroencoding
se establece en “UTF-8” para uniformidad de codificación.Otra opción podría ser intentar convertir los archivos problemáticos a un formato diferente, como CSV, antes de leerlos en R. Esto se puede hacer utilizando Excel o cualquier otro software de hojas de cálculo.
“`{warning}
Como modelo de lenguaje de IA, no puedo acceder a tus archivos en el enlace de Google Drive ya que no tengo la autorización requerida. En consecuencia, no pude determinar si las soluciones propuestas realmente funcionan para ti.