2016-09-14 3 views
1

956,678 행을 포함하는 CSV 파일에 데이터가 있습니다. 다음 코드 조각은 내가 CSV 파일로 이러한 그룹을 작성하려합니다 파일을 읽고CSV 파일로 데이터 분할 및 R 슬라이스 파일로 쓰기 R

my_file <- read.csv("~myfile_path/file.csv") 
grps <- (split(my_file, (seq(nrow(my_file))-1) %/% 65000)) 
for (i in grps) 
{ 
write.csv(grps, paste("path/output_file", i, ".csv", sep="")) 
} 

이제 R.에서 (각 그룹이 65,000 행과 나머지 행이 마지막 그룹에 갈 필요) 그룹의 데이터를 분할 디스크에. 아무도 나에게 그 방법을 제안 할 수 있습니까?

EDIT1 : 의견을 바탕으로

, 내가 코드를 수정하고 다음과 같은 오류가 발생했습니다 :

루프에서 write.csv는 .CSV로 목록을 작성하려고 귀하의
Error in data.frame(`0` = list(nih_addr_id = c(664L, 665L, 666L, 667L, : 
arguments imply differing number of rows: 65000, 46677 
+1

는'my_file' 이미 data.frame이다. 다음 진술은 필요하지 않습니다. –

+0

'split (df, sample (1 : round (nrow (df)/65000), 65000)'')''에 의해 생성 된리스트에서 각 청크를''write- 조작. – Abdou

+0

@Abdou : 의견에 감사드립니다. 당신이 제안한 분할 접근법을 사용합니다. 다음 오류가 나타납니다. "길이가 (x), 크기, 대체, prob) sample.int의 오류 : '바꾸기 = FALSE'일 때 채우기보다 큰 샘플을 가져올 수 없습니다." –

답변

1

파일이 아니라 목록의 dataframe 요소입니다.

시도 :

my_file <- read.csv("~myfile_path/file.csv") 
grps <- (split(my_file, (seq(nrow(my_file))-1) %/% 65000)) 
for (i in seq_along(grps)) { 
    write.csv(grps[[i]], paste0("path/output_file", i, ".csv")) 
} 
관련 문제