2017-04-27 3 views
0

Ich habe eine CSV-Tabelle mit Verbindungskonzentrationen erhalten. Durchgestreut sind Zeichenwerte mit verschiedenen Bedeutungen, wie > 888, <0.2, / und viele mehr.Konvertieren von Zeichenfolgen in NA während des CSV-Lesens

Gibt es einen Weg, vorzugsweise mit Basis R oder readr, diese beim Einlesen in umzuwandeln und damit nur von numerischen Daten zu starten?

Im Moment kann ich nur a solution that relies on hard-coding every character string finden, was zu schwierig und zeitaufwendig wäre.

+0

Haben Sie versucht, diejenigen, die als 'na.strings' angeben, wenn die CSV-Datei zu lesen? –

+0

Dies ist die Lösung in der verknüpften Antwort, aber ich frage mich, wie dies auf eine beliebige Zeichenkette anstelle von angegebenen angewendet werden könnte. – Joe

+0

Die akzeptierte Antwort in der verknüpften Post ist anders. Die Frage ist dann, ob Sie irgendwie wissen, welche Werte es geben kann. Wenn nicht, dann müssen Sie sie komplett lesen und später konvertieren mit as.numeric –

Antwort

1

Sobald Sie sie in gelesen haben, nur as.numeric verwenden ...

a <- c("1","2","3",">4","5","6-7","8+","9") 

as.numeric(a) 
1 2 3 NA 5 NA NA 9 
+0

Danke, aber aus Neugierde fragte ich mich, ob es während des Einleseprozesses gemacht werden könnte. (Zweifellos gibt es viele Möglichkeiten, dies zu erreichen, sobald die Daten bereits in R sind.) – Joe

+0

Ich kenne keinen einfachen Weg - Sie müssten jeden Artikel trotzdem lesen, damit der Code entscheiden kann, ob er ihn akzeptiert oder ablehnt. Aus Effizienzgründen ist es sinnvoll, alles einzulesen und dann aufzuräumen. –

+0

Ich nehme deinen Standpunkt. – Joe

Verwandte Themen