2016-05-26 10 views
7

Attualmente sto leggendo in un file utilizzando il pacchetto readr. L'idea è di usare read_delim per leggere in fila per riga per trovare le colonne massime nel mio file di dati non strutturati. Il codice restituisce che ci sono problemi parsing. Conosco questi e tratterò del tipo di colonna dopo l'importazione. C'è un modo per spegnere il problems() come il solito options(warn) non funzionaElimina problemi di analisi del lettore in

i=1 
max_col <- 0 
options(warn = -1) 
while(i != "stop") 
{ 
    n_col<- ncol(read_delim("file.txt", n_max = 1, skip = i, delim="\t")) 
    if(n_col > max_col) { 
    max_col <- n_col 
    print(max_col) 
    } 
    i <- i+1 
    if(n_col==0) i<-"stop" 
} 
options(warn = 0) 

L'uscita per console che sto cercando di sopprimere è il seguente:

.See problems(...) for more details. 
Warning: 11 parsing failures. 
row  col expected actual 
    1 1####4 valid date 1###8 
+0

Ho la sensazione che dovresti correggere il file da R prima di importarlo. Forse awk è più adatto per il compito? – Tensibai

+0

'suppressWarnings (x <- readr :: parse_integer (c (" 1X "," blah "," 3 "))) sembra funzionare ... – cory

+2

Probabilmente è meglio aprire una connessione' file', leggere il file a linea alla volta e contare i separatori? 'Max (sapply (readlines ("file.txt"), la funzione (x) {lunghezza (strsplit (x, "\ t") [[1]])}))' – Spacedman

risposta

13

In R si può sopprimere tre principali cose fastidiose durante l'utilizzo di pacchetti:

  1. messaggi suppressMessages(YOUR_FUNCTION)
  2. avvisi suppressWarnings(YOUR_FUNCTION)
  3. messaggi di avvio pacchetto suppressPackageStartupMessages(YOUR_FUNCTION)

Quindi nel tuo caso imho lasciare che anche lo sviluppatore del pacchetto sa in modo che lui/lei può per esempio aggiungere un argomento verbose nella funzione.