Las funciones read.table y read.csv en R se utilizan para analizar un archivo o una URL que contiene datos delimitados y producir un marco de datos R. Sin embargo, ya tengo un vector de caracteres que contiene los datos delimitados por CSV (usando coma y \ n como delimitadores de columna y registro), por lo que no necesito leerlo desde un archivo o URL. ¿Cómo puedo pasar este vector de caracteres a read.table
, read.csv
o scan()
sin escribir primero en un archivo en el disco y leerlo nuevamente? Me doy cuenta de que escribirlo en un disco es posible, pero estoy buscando una solución que no requiera este innecesario viaje de ida y vuelta y pueda leer datos del vector de caracteres directamente.¿Cómo puedo analizar datos CSV de un vector de caracteres para extraer un marco de datos?
16
A
Respuesta
24
Puede usar textConnection() para pasar el vector de caracteres a read.table(). Un ejemplo:
x <- "first,second\nthird,fourth\n"
x1 <- read.table(textConnection(x), sep = ",")
# x1
V1 V2
1 first second
2 third fourth
La respuesta se encontró en R mailing list.
2017 EDITAR
Siete años más tarde, probablemente lo haría así:
read.table(text = x, sep = ",")
3
Una adición de menor importancia a la respuesta de neilfws. Esta función de contenedor es ideal para ayudar a responder preguntas en stackoverflow cuando el interrogador ha colocado datos brutos en su pregunta en lugar de proporcionar un marco de datos.
textToTable <- function(text, ...)
{
dfr <- read.table(tc <- textConnection(text), ...)
close(tc)
dfr
}
Con el uso, p.
textToTable("first,second\nthird,fourth\n", sep = ",")
Cuestiones relacionadas
- 1. Filtrar un marco de datos en un vector
- 2. suministra un vector a "clases" de marco de datos
- 3. Filtrar un marco de datos
- 4. ¿Cómo puedo extraer/analizar datos tabulares de un archivo de texto en Perl?
- 5. Lectura de datos CSV de un archivo
- 6. ¿Cómo extraer datos de un PDF?
- 7. ¿Cómo puedo extraer datos de un archivo .fig en MATLAB?
- 8. cómo extraer un subconjunto de un marco de datos basado en una condición que involucra un campo?
- 9. Cómo extraer datos de archivo CSV en PHP
- 10. ¿Cómo uso Scala para analizar datos CSV con columnas vacías?
- 11. ¿Cómo puedo extraer campos de un archivo CSV en Perl?
- 12. ¿Cómo dividir un marco de datos?
- 13. ¿Cómo extraer datos de un sistema SAP ABAP?
- 14. En R, ¿por qué la selección de filas de un marco de datos devuelve datos como un vector si el marco de datos tiene solo una columna?
- 15. R eliminar caracteres especiales del marco de datos
- 16. Cómo transportar un conjunto de datos en un archivo csv?
- 17. ¿Cómo puedo extraer datos EXIF usando PerlMagick?
- 18. Extracción de columnas específicas de un marco de datos
- 19. Regrese cada columna en un marco de datos en un vector en R
- 20. ¿Cómo puedo extraer datos de tablas HTML en Perl?
- 21. Cómo analizar un archivo CSV en Bash?
- 22. Extraer columna de data.frame como un vector
- 23. ¿Cómo preprocesar datos CSV para FasterCSV?
- 24. Convirtiendo un marco de datos a xts
- 25. ¿Cómo puedo analizar robustamente CSV con formato incorrecto?
- 26. Vector frente a marco de datos en R
- 27. Contando no NA en un marco de datos; obtener respuesta como un vector
- 28. Subconjunto de un marco de datos basado en el contenido de otro marco de datos
- 29. ¿Cómo puedo leer el código para summary() para un marco de datos?
- 30. ¿Cómo extraer los datos de un sitio web usando Java?
Una advertencia acerca de este enfoque: 'textConnection()' puede ser muy lento a medida que aumenta el número de filas. En 223k filas, me resulta más rápido escribir en un archivo CSV temporal, y leer eso en :( –