Locandina prima volta qui, quindi cercherò di rendermi il più chiaro possibile sull'aiuto di cui ho bisogno. Sono abbastanza nuovo per R, e questa è la mia prima vera esperienza di programmazione indipendente.Importa file insolito grande in R
Ho dati di tick di serie per circa 2,5 anni, ogni giorno ha il suo file. I file sono .txt e consistono in circa 20-30 milioni di righe e una media di 360mb ciascuna. Sto lavorando un file alla volta per ora. Non ho bisogno di tutti i dati contenuti in questi file e speravo di poter utilizzare la programmazione per ridurre al minimo i miei file.
Ora il mio problema è che sto avendo qualche difficoltà con la scrittura del codice corretto in modo che R capisca cosa ho bisogno che faccia.
Lascia che prima mostri alcuni dei dati in modo da poter avere un'idea della formattazione.
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
Un altro elemento di cattura dei dati:
M732
D 3547742
A 3551497B 200000 67110 02800
D 3550806
D 3547743
A 3551498S 250000 69228 09900
Così come si può vedere ogni riga inizia con una lettera. Ogni lettera indica cosa significa la linea. Ad esempio, R
significa messaggio di directory del libro degli ordini, M
significa millisecondi dopo l'ultimo secondo, H
significa messaggio di azione di trading azionario. Ci sono 14 diverse lettere usate in totale.
Ho usato la funzione readLines
per importare i dati in R. Questo però sembra richiedere molto tempo per l'elaborazione di R quando voglio lavorare con i dati.
Ora vorrei scrivere una sorta di funzione If che dice se la prima lettera è R
quindi da offset 1 a 4 il codice indica l'identificatore del segmento di mercato ecc., E sono R aggiungere colonne a questi in modo da poter lavorare con i dati in modo più strutturato.
Qual è il modo migliore di importare tali dati e anche creare una qualche forma di struttura, ad esempio utilizzare informazioni ID univoche nella riga di dati per analizzare 1 stock alla volta, ad esempio.
Grazie per la risposta. Sono stato in grado di suddividere le righe, ma solo per l'intero dato.Ho usato la seguente codifica 'codice starts = c (1,16,30,38,46,50,54) ends = c (14,28,35,43,47,50,55) ldata = lunghezza (dati) lstarts = length (starts) x = sottostringa (dati, rep (inizia, rep (ldata, lstart)), rep (termina, rep (ldata, lstarts))) matrice (x, ncol = lstarts) ' È possibile assegnare questa codifica a ciascun valore iniziale? Ho provato a scriverlo dopo ogni lettera, ma non sembra funzionare. Grazie per il feedback – Morten