Come ignorare i commenti riga nel file di dati voglio importare, con R

Ho molti stringa di file (.str), e voglio importare in R (looping file).
Il problema è che la prima riga non è né colonne nome, né l’inizio di matrix.. è una riga di commento. Idem per l’ultima riga.
tra queste due linee, in piedi matrice voglio importare..
Come posso fare ?

Thx

Welcom per COSÌ. Si prega di leggere questo su come creare un riproducibile esempio. In questo caso, per esempio, si dovrebbe aggiungere alcune parti del testo, quindi cosa hai provato.
Sono preceduti da qualsiasi tipo di carattere di commento?
Leggi ?read.table. I parametri skip, nrow, e comment.char potrebbero essere rilevanti per te.
Se il file non tutti hanno identica struttura, si può sempre leggere con readLines e quindi di usare espressioni regolari funzioni per rimuovere le righe non vuoi prima di convertire la tua intenzione di struttura di dati.
Ma se il prima linea è quella che si desidera ignorare, basta usare skip = 1 in read.table saltare la prima linea e procedere come di consueto, ad esempio, read.table( "myfile.txt" , skip = 1 , header = TRUE )

OriginaleL’autore user2551551 | 2013-07-05

3 Replies
  1. 5

    Se si desidera saltare la prima e ultime righe in un file, è possibile procedere come segue. Utilizzare readLines per leggere il file in un carattere vettoriale, e quindi passare read.csv.

    strs <- readLines("filename.csv")
    dat <- read.csv(text=strs,             # read from an R object rather than a file
                    skip=1,                # skip the first line
                    nrows=length(strs) - 3 # skip the last line
                    )

    Il - 3 è perché il numero di righe di dati 3 in meno rispetto al numero di righe di testo in un file: 1 saltata la linea all’inizio, 1 riga di intestazioni di colonna, 1 saltata la linea alla fine. Naturalmente, si potrebbe anche ignorare l’ nrows argomento, ed eliminare le sciocchezze riga dal frame di dati dopo l’importazione.

    OriginaleL’autore Hong Ooi

  2. 5

    Potete mettere i vostri commenti in qualsiasi punto del file di dati nello stesso modo in cui avete messo i vostri commenti un R script. Per esempio, se ho un data.txt come questo:

    # comment 1
    str1
    str2
    # comment 2
    str3
    # comment 3
    str4
    str5# comment 4
    str6
    str7
    # comment 5

    Quindi non dovete fare nulla di ignorare i commenti:

    > x<-read.table("data.txt", header=FALSE)
    > x
        V1
    1 str1
    2 str2
    3 str3
    4 str4
    5 str5
    6 str6
    7 str7
    >

    Nota che comment 4 non viene letto. È possibile modificare il carattere di commento # utilizzando il comment.char opzione.

    OriginaleL’autore k.c.

  3. 0

    Si può saltare arbitrario linee in qualsiasi punto del file, se si combina l’ readLines approccio Hong Ooi dà insieme con il negativo di indicizzazione. Ecco un esempio che salta linee di 2-5 in un file header, ma un numero di linee di annotazione/meta info:

    lines <- readLines('myfile.txt')
    mytable <- read.table(text = lines[-c(2:5)], sep = '\t', header = T)

    OriginaleL’autore posdef

Lascia un commento