2014-03-31 10 views
6

Ich habe eine CSV-Datei mit zusätzlichen Leerzeichen, die ich in R als Datenframe lesen möchte, strippen die weißen Räume.R fread und Streifen weiß

ist, dass der Datensatz groß und dauert etwa eine halbe Stunde Dies kann durch Verwendung

testdata<-read.csv("file.csv", strip.white=TRUE) 

Das Problem erreicht werden. Die fread-Funktion ist mindestens doppelt so schnell, hat aber nicht die strip.white-Funktion.

library("data.table") 
testdata<-data.frame(fread("file.csv")) 

Gibt es einen schnellen Weg, um die weißen Flächen aus den Spalten nach dem Lesen in abzustreifen, oder gibt es eine Möglichkeit, die weißen Flecken strippen fread mit?

Wenn es nur ein einmaliger Import wäre, würde mir das nicht viel ausmachen, aber ich muss das mehrmals und regelmäßig machen.

+0

Es gibt einen Parameter 'strip.white', der standardmäßig auf' TRUE' in fread eingestellt ist und Sie können auch 'data.table = FALSE' übergeben, um nach dem Lesen einen' dat.frame' zu ​​erhalten der Datensatz –

Antwort

3

Es gibt einen Parameter strip.white ist, der gesetzt wird standardmäßig auf TRUE in fread jetzt und Sie können auch data.table = FALSE zu fread übergeben, um eine data.frame nach dem Lesen der Daten zu erhalten t

+1

Danke, die Freed-Funktion wurde aktualisiert, seit ich das erste Mal auf dieses Problem gestoßen bin, also ist dies nun der richtige Weg. – DaReal

2

Sie können str_trim von stringr Paket verwenden:

library(stringr) 
testdata[,sapply(.SD,str_trim)] 

standardmäßig trimmt es whitesapces in beiden Seiten, aber Sie auf die Seite einstellen:

testdata[,sapply(.SD,str_trim,side="left")] 
+0

Danke, das hätte den Trick geschafft. Mein Kollege hat jedoch eine Lösung außerhalb von R. Er verwendete einen PERL-Befehl auf seinem lokalen Mac OSX-Rechner, um den Padding zu entfernen: perl -lapes/\ s + // sg '/pfad/zu/file.csv>/pfad /to/fileV2.csv Dies reduziert die Dateigröße und löscht Leerzeichen, bevor es in R gelesen wird. – DaReal

+0

Nur ein Wort der Warnung: die Verwendung von @ agstudys Lösung wird numerische Spalten in chr konvertieren, wenn diese auch Leerzeichen enthalten. Ansonsten, nette Lösung. – fridaymeetssunday