2014-03-31 11 views
6

공백을 제거한 데이터 프레임으로 R에 읽어 들이고 싶은 여분의 공백이있는 CSV 파일이 있습니다. R fread와 strip white

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

문제를 이용함으로써 달성 될 수있다 해당 데이터 셋 크고 30 분 걸린다. fread 함수는 적어도 두 배는 빠르지 만 strip.white 함수는 없습니다.

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

에서 읽은 후에 열에서 공백을 제거하는 빠른 방법이 있나요, 또는 FREAD를 사용하여 공백을 제거 할 수있는 방법이있다?

한 번만 가져온 것이면별로 신경 쓰지 않지만 여러 번 정기적으로해야합니다.

+0

freed에는 'strip.white' 매개 변수가 기본값으로'TRUE'로 설정되어 있습니다. 또한 'data.table = FALSE'를 fread에 전달하여 읽을 수있게되면'data.frame'을 수신 할 수 있습니다 데이터 세트 –

답변

3

기본값은 TRUE이고 현재는 fread이며 data.table = FALSE에서 fread으로 전달하면 data.frame을받을 수 있습니다. t

+1

감사합니다. fread 함수가 처음으로이 문제에 부딪혔을 때부터 업그레이드되었으므로 이제이 방법을 사용하십시오. – DaReal

2

당신은 stringr 패키지 str_trim를 사용할 수 있습니다 기본적으로

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

가 양쪽에 whitesapces 트림,하지만 당신은 측면 설정할 수 있습니다 설정 매개 변수 strip.white

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

고마워요,이 트릭을했을 것입니다. 그러나 동료는 R 외부의 솔루션을 사용합니다. 그는 자신의 로컬 Mac OSX 머신에서 패딩을 제거하기 위해 PERL 명령을 사용했습니다 : perl -lape 's/\ s + // sg'/path/to/file.csv>/path /to/fileV2.csv 이렇게하면 파일 크기가 줄어들고 R에 들어가기 전에 공백을 제거합니다. – DaReal

+0

주의 할 점은 @ agstudy의 솔루션을 사용하면 공백이 포함되어 있으면 숫자 열을 chr로 변환 할 수 있습니다. 그렇지 않으면 좋은 해결책입니다. – fridaymeetssunday