una txt todas texto separado primera por lineas linea leer las especifica comas archivos archivo r large-files line-numbers

txt - leer una linea especifica de un archivo en java



Leer líneas por número de un archivo grande (6)

Si es un archivo binario

Algunas discusiones están aquí: Leyendo solo una parte de un archivo Stata .DTA en R

Si es un archivo CSV u otro archivo de texto

Si son contiguos y se encuentran en la parte superior del archivo, solo use el argumento read.csv para read.csv o cualquiera de la familia de read.table de read.table . De lo contrario, puede combinar los ,nrows y ,skip para llamar repetidamente a read.csv (leyendo en una nueva fila o grupo de filas contiguas con cada llamada) y luego rbind los resultados.

Tengo un archivo con 15 millones de líneas (no cabe en la memoria). También tengo un pequeño vector de números de línea: las líneas que quiero extraer.

¿Cómo puedo leer las líneas en una sola pasada?

Esperaba una función C que lo haga en una sola pasada.


Antes de poder obtener una solución / respuesta R, lo he hecho en Ruby:

#!/usr/bin/env ruby NUM_SEQS = 14024829 linenumbers = (1..10).collect{(rand * NUM_SEQS).to_i} File.open("./data/uniprot_2011_02.tab") do |f| while line = f.gets print line if linenumbers.include? f.lineno end end

corre rápido (tan rápido como mi almacenamiento puede leer el archivo).


Compilo una solución basada en las discusiones aquí .

scan(filename,what=list(NULL),sep=''/n'',blank.lines.skip = F)

Esto solo te mostrará el número de líneas pero no se leerá en nada. Si realmente desea omitir las líneas en blanco, podría establecer el último argumento en VERDADERO.



Si su archivo tiene longitudes de línea fijas, puede usar ''buscar'' para saltar a cualquier posición de carácter. Así que salta a N * line_length para cada N que quieras y lee una línea.

Sin embargo, a partir de los documentos R:

Use of seek on Windows is discouraged. We have found so many errors in the Windows implementation of file positioning that users are advised to use it only at their own risk, and asked not to waste the R developers'' time with bug reports on Windows'' deficiencies.

También puede usar "buscar" de la biblioteca estándar de C en C, pero no sé si la advertencia anterior también se aplica.


El truco es usar la conexión Y abrirla antes de read.table .

con<-file(''filename'') open(con) read.table(con,skip=5,nrow=1) #6-th line read.table(con,skip=20,nrow=1) #27-th line ... close(con)

También puedes intentar scan , es más rápido y te da más control.