Primer póster aquí, así que trataré de ser lo más claro posible con la ayuda que necesito. Soy bastante nuevo para R, y esta es mi primera experiencia real de programación independiente.Importar archivo inusual grande a R
Tengo datos de tick stock durante aproximadamente 2,5 años, cada día tiene su propio archivo. Los archivos son .txt y consisten en aproximadamente 20-30 millones de filas, y un promedio de 360mb cada una. Estoy trabajando un archivo a la vez por ahora. No necesito todos los datos que contienen estos archivos, y esperaba poder utilizar la programación para minimizar un poco mis archivos.
Ahora mi problema es que tengo algunas dificultades para escribir el código correcto, por lo que R entiende lo que necesito hacer.
Permítanme primero mostrar algunos de los datos para que pueda hacerse una idea del formato.
M977
R 64266NRE1VEW107 FI0009653869 2EURXHEL 630 1
R 64516SSA0B 80SHB SE0002798108 8SEKXSTO 40 1
R 645730BBREEW750 FR0010734145 8EURXHEL 640 1
R 64655OXS1C 900SWE SE0002800136 8SEKXSTO 40 1
R 64663OXS1P 450SWE SE0002800219 8SEKXSTO 40 1
R 64801SSIEGV LU0362355355 11EURXCSE 160 1
M978
Otro recorte de los datos:
M732
D 3547742
A 3551497B 200000 67110 02800
D 3550806
D 3547743
A 3551498S 250000 69228 09900
Así como se puede ver cada línea comienza con una letra. Cada letra denota lo que significa la línea. Por ejemplo, R
significa mensaje de directorio de libreta de pedidos, M
significa milisegundos después del último segundo, H
significa mensaje de acción de negociación de valores. Hay 14 letras diferentes utilizadas en total.
He utilizado la función readLines
para importar los datos a R. Esto, sin embargo, tarda mucho tiempo para que R procese cuando quiero trabajar con los datos.
Ahora me gustaría escribir algún tipo de función If que diga si la primera letra es R
y luego del desplazamiento 1 al 4 el código significa Market Segment Identifier etc., y R tiene que agregar columnas a estos para que pueda trabajar con los datos de una manera más estructurada.
¿Cuál es la mejor forma de importar dichos datos, y también crear algún tipo de estructura, es decir, utilizar información de identificación única en la línea de datos para analizar 1 stock a la vez, por ejemplo.
Gracias por su respuesta. Pude dividir las filas, pero solo para toda la información.He utilizado la siguiente codificación 'código starts = c (1,16,30,38,46,50,54) ends = c (14,28,35,43,47,50,55) ldata = longitud (datos) lstarts = length (starts) x = subcadena (data, rep (starts, rep (ldata, lstarts)), rep (ends, rep (ldata, lstarts))) matrix (x, ncol = lstarts) ' ¿Es posible asignar esta codificación a cada valor inicial? Intenté escribirlo después de cada carta, pero parece que no funciona. Gracias por la respuesta – Morten