Sto cercando di leggere un file di testo con diverse lunghezze di riga:Importare dati in R con un numero sconosciuto di colonne?
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
Per superare questo problema, sto usando il riempimento argomento = TRUE in read.table, quindi:
data<-read.table("test",sep="\t",fill=TRUE)
Purtroppo, per valutare la lunghezza massima di fila, read.table legge solo le prime 5 righe del file, e genera un oggetto simile a questo:
data
V1 V2 V3 V4 V5
1 1 NA NA NA NA
2 1 2 NA NA NA
3 1 2 3 NA NA
4 1 2 3 4 NA
5 1 2 3 4 5
6 1 2 3 4 5
7 6 NA NA NA NA
8 1 2 3 4 5
9 6 7 NA NA NA
10 1 2 3 4 5
11 6 7 8 NA NA
c'è AW ay per forzare read.table a scorrere l'intero file per valutare la lunghezza massima della riga? So che una possibile soluzione potrebbe essere quella di fornire il numero della colonna, come:
data<-read.table("test",sep="\t",fill=TRUE,col.names=c(1:8))
Ma dal momento che ho un sacco di file, ho voluto valutare questo automaticamente entro R. Qualsiasi suggerimento? :-)
EDIT: il file originale non contiene numeri progressivi, quindi questa non è una soluzione:
data1<-read.table("test",sep="\t",fill=TRUE)
data2<-read.table("test",sep="\t",fill=TRUE,col.names=c(1:max(data1))
si può mettere un colpo di testa nel file (ad esempio i file hanno un formato coerente)? – Shane
Sfortunatamente no, i file vengono generati esternamente e ogni riga può avere un numero casuale di voci. –