R: "read" un archivo txt de una URL

Estoy interesado en ver si es posible cargar directamente (en R) archivo txt de una url en lugar de descargarlo y luego importarlo.

He encontrado este post aquí: Acceder a una URL y leer datos con R

Aparentemente es posible hacer esto con archivos csv. ¿Es posible hacer lo mismo para los archivos txt?

Intenté adaptar el código de este post de flujo de pila para el siguiente sitio web: https://mantas.info/wp/wp-content/uploads/simple_esn/MackeyGlass_t17.txt

myfile <- read.txt(url("https://mantas.info/wp/wp-content/uploads/simple_esn/MackeyGlass_t17.txt"))

Pero no parece estar funcionando.

¿Estoy haciendo algo mal? ¿O no es posible cargar directamente un archivo txt de una url a R?

Gracias.

Pregunta hecha hace 3 años, 4 meses, 28 días - Por coderconqueror


4 Respuestas:

  • La cuestión es que read.txt no existe.

    ?read.txt
    

    No hay documentación para ‘read.txt’ en paquetes y bibliotecas especificados: ¿Podrías probar? ’

    Debería ser read.table (sin necesidad de paquetes)

    myfile <- read.table(url("https://mantas.info/wp/wp-content/uploads/simple_esn/MackeyGlass_t17.txt"))
    

    - ¡Fuera!

    dim(myfile)
    #[1] 10000     1
    head(myfile)
    #           V1
    #1  0.12206400
    #2  0.04719682
    #3 -0.01833035
    #4 -0.08194958
    #5 -0.13422158
    #6 -0.18542675
    

    Respondida el Dec 18, 2020 a las 22:31 - por syntaxsenseie7e4

    Votos positivos: 0 | Votos negativos: 0

  • Prueba con data.table función fread() (una de las funciones más rápidas para la carga de datos):

    library(data.table)
    #Load
    myfile <- fread("https://mantas.info/wp/wp-content/uploads/simple_esn/MackeyGlass_t17.txt")
    

    Producto (algunos filas):

    head(myfile)
                V1
    1:  0.12206400
    2:  0.04719682
    3: -0.01833035
    4: -0.08194958
    5: -0.13422158
    6: -0.18542675
    

    Puede envolverlo como dataframe usando as.data.frame() o:

    #Load 2
    myfile <- fread("https://mantas.info/wp/wp-content/uploads/simple_esn/MackeyGlass_t17.txt",data.table = F)
    

    Respondida el Dec 18, 2020 a las 22:37 - por techinnovator

    Votos positivos: 0 | Votos negativos: 0

  • El error en tu código radica en la función read.txt(), ya que no es una función válida en R. Para leer un archivo de texto desde una URL en R, puedes usar la función readLines() de la siguiente manera:

    R
    url <- "https://mantas.info/wp/wp-content/uploads/simple_esn/MackeyGlass_t17.txt"
    myfile <- readLines(url)
    

    Con esto, podrás leer el contenido del archivo de texto directamente desde la URL especificada. ¡Espero que esto te sea útil! Si tienes alguna otra pregunta, no dudes en decírmelo.

    Respondida el Dec 19, 2020 a las 22:30 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Sí, es posible cargar directamente un archivo txt desde una URL en R sin descargarlo primero. El código que proporcionaste es casi correcto, pero hay un pequeño error: deberías usar la función readLines en lugar de read.txt. Aquí tienes el código corregido:

    
    myfile <- readLines("https://mantas.info/wp/wp-content/uploads/simple_esn/MackeyGlass_t17.txt")
    

    Esto leerá el archivo txt de la URL proporcionada y lo almacenará en el objeto myfile como un vector de líneas. Puedes acceder a las líneas individuales del archivo usando el operador de indexación []. Por ejemplo, para obtener la primera línea del archivo, puedes usar:

    
    myfile[1]
    

    También puedes usar la función strsplit para dividir cada línea en una lista de palabras:

    
    words <- strsplit(myfile, " ")
    

    Esto creará una lista de listas, donde cada lista interna contiene las palabras de una línea del archivo.

    Respondida el Dec 19, 2020 a las 22:31 - por Gemini

    Votos positivos: 0 | Votos negativos: 0