2014-03-31 28 views
6

我有一個csv文件,帶有額外的空格,我想將其讀入R作爲數據框,剝離空格。R fread和帶狀白色

這可以通過使用

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

問題能夠實現,數據集大,耗時約半小時。 fread功能至少快兩倍,但沒有strip.white功能。

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

是否有一個快速的方式在閱讀後,剝去列的空格,或者是有一些方法用的fread剝去白色空間?

如果只是一次性導入,我不會介意那麼多,但我需要定期做幾次。

+0

有一個參數'strip.white',它現在默認設置爲'TRUE',你也可以通過'data.table = FALSE'來fread接收'data.frame'數據集 –

回答

3

有一個參數strip.white被設置默認爲TRUE in fread現在,您也可以通過data.table = FALSEfread在閱讀數據後收到data.frame t

+1

謝謝,自從我第一次遇到這個問題以來,fread函數已經升級了,所以現在這是要走的路。 – DaReal

2

您可以使用str_trimstringr包:

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

默認情況下它修剪whitesapces在兩側,但你可以設置方面:

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

謝謝,這可能會成功。但是,我的同事在R之外有一個解決方案。他在他本地的Mac OSX機器上使用PERL命令去除填充: perl -lape的/s/+sg/path/to/file.csv/path /to/fileV2.csv 這會減小文件大小並在將它讀入R之前剝去空格。 – DaReal

+0

只需謹慎一點:使用@ agstudy的解決方案將數字列轉換爲chr(如果這些列也包含空格)。否則,很好的解決方案 – fridaymeetssunday