Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

357
Vistas
¿Cómo convertir archivos de texto en marcos de datos en R?

Estoy tratando de exportar puntos de datos de mongodb. Desafortunadamente, no pude conectarlo directamente a rstudio. Entonces, a partir del resultado de la consulta, creé un archivo de texto e intenté leerlo como archivo de texto en R.

 "cityid", "count" "102","2" "55","31" "119","7" "206","1" "18","2" "15","1" "32","3" "14","1" "54","2" "23","85" "158","3" "266","1" "9","1" "34","1" "159","1" "31","1" "22","2" "209","2" "121","4" "73","12" "350","2" "311","2" "377","2" "230","7" "290","1" "49","2" "379","2" "75","1" "59","6" "165","3" "19","8" "13","40" "126","13" "243","12" "325","1" "17","1" "null","235" "144","2" "334","1" "40","12" "7","34" "181","40" "349","4"

Básicamente, el formato es como el anterior y me gustaría convertirlo en un marco de datos del cual pueda hacer referencia para el cálculo con otros conjuntos de datos.

Esto es lo que traté de hacer para hacer un marco de datos ...

 L <- readLines(file.choose()) L.df <- as.data.frame(L) list <- strsplit(L.df, ",") library("plyr") df <- ldply(list) colnames(df) <- c("city_id", "count") str(df) df$city_id <- suppressWarnings(as.numeric(as.character(df$city_id)))

En la última línea, traté de convertir el valor del carácter en un valor numérico solo para fallar y forzarlos a NA.

¿Alguien tiene una mejor sugerencia para hacerlos como una tabla de valores numéricos? ¿O hay una mejor manera de llevar mongodb a R sin copiarlos y pegarlos como archivos de texto? Tuve éxito al conectarme a mongodb usando Rmongo, pero la sintaxis era demasiado complicada para que yo la entendiera. La consulta que usé es:

 db.getCollection('logging_app_location_view_logs').aggregate([ {"$group": {"_id": "$city_id", "total": {"$sum":1}}} ]).forEach(function(l){ print('"' + l._id + '","' + l.total + '"'); });

¡Gracias de antemano por tu ayuda!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

No necesita volver a especificar los nombres de las columnas cuando ya ha pasado header = TRUE en la función read.table . El argumento colClasses se encargará de la clase de una columna de datos.

 df <- read.table(file.choose(), header = TRUE, sep = ",", colClasses = c('character', 'character'), na.strings = 'null') # convert character to numeric format char_cols <- which(sapply(df, class) == 'character') # identify character columns df[char_cols] <- lapply(df[char_cols], as.numeric) # convert character to numeric column
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda