2016-10-08 3 views
2

私は、100万行以上のSDN_1という名前の巨大な.txtファイルを持っています。その後、私は分割するために、このコードを使用し大きなテーブルを小さな.txtファイルに分割してコンピュータに保存するRコード?

SDN_1 <- read.csv("C:/Users/JHU/Desktop/rfiles/SDN_1.csv", header=FALSE) 

:私は、私はRにファイルをロードするには、このコードを使用R.

を使用して小さな.txtファイル(10,000行毎)にこのファイルを分割したいですテーブル:

chunk <- 10000 
n  <- nrow(SDN_1) 
r  <- rep(1:ceiling(n/chunk),each=chunk)[1:n] 
d  <- split(SDN_1,r) 

次に、分割機能の出力を.txtファイルとして保存し、UTF8としてエンコードしたいと考えています。ファイルの名前は、次の形式で指定する必要があります。test_YYYMMDD_HHMMSS.txt

私はRが新しく、どんな助けにも感謝します。

更新: Hack-Rは.csvファイルを作成するために以下のコードを提案しました。以下のコードは私に以下のエラーメッセージを与え始め、その後一度働い:

コードハック-Rが提案さ:

n <- 1 
for(i in d){ 
con <- file(paste0("file",n,"_", gsub("- 
","",gsub(":","",gsub("","_",Sys.time()))), "_",".csv"),encoding="UTF-8") 
write.csv(tmp, file = con) 
n <- n + 1 
} 

私は取得していますエラーメッセージ:

Error in is.data.frame(x) : object 'tmp' not found 
+0

以下の回答は機能しますが、常に動作するとは思われません。初めて私が走ったとき、それは働き、.csvファイルはこのフォルダ(C:\ Users \ JHU \ Documents)に作成されました。私はsetwd(C:\ Users \ JHU \ Desktop \ rfiles)を使って作業ディレクトリを変更して、生成された.csvファイルをrfilesにダウンロードしようとしました。 "is.data.frame(x)のエラー:オブジェクト 'tmp'見つかりません "。 – Curious

答えて

2

をコードあなたの使い方をすでに持っている:

より一般的に
SDN_1 <- mtcars # this represents your csv, to make it reproducible 

chunk <- 10 # scaled it down for the example 
n  <- nrow(SDN_1) 
r  <- rep(1:ceiling(n/chunk),each=chunk)[1:n] 
d  <- split(SDN_1,r) 

n <- 1 # this part is optional 
for(i in d){ 
    con <- file(paste0("file",n,"_", gsub("-","",gsub(":","",gsub(" ","_",Sys.time()))), "_",".csv"),encoding="UTF-8") 
    write.csv(tmp, file = con) 
    n <- n + 1 
} 

、のはabをしましょう大きなオブジェクトまたはあなたがプログラムで書き出したい環境内のオブジェクトの任意の集合の分割を表す:

a <- "a" 
b <- "b" 

あなたは自分の名前を含むベクトルを取得することができます:

files <- ls() 

そして、ループを通過し、プログラム次のように要求された形式で日付と時刻を追加し、UTF-8でエンコードされたCSVファイルに書き込む:

for(i in files){ 
    tmp <- get(i) 
    con <- file(paste0(tmp,"_", gsub("-","",gsub(":","",gsub(" ","_",Sys.time()))), "_",".csv"),encoding="UTF-8") 
    write.csv(tmp, file = con) 
} 

私はのためにSys.time()を使用しましたタイムスタンプはネストされたgsub()で、あなたが望む方法をフォーマットします。 this postで説明されているように、ファイルをUTF-8にエンコードしました。

+0

@BenBolker私の編集、多くの感謝を参照してください –

+0

ハック-R-あなたの答えをありがとう。初めてのコードを実行しようとしました。それから私は再びそれを実行しようとしたとき、私はこのエラー "is.data.frame(x)のエラー:オブジェクト 'tmp'が見つかりません"を与え始めました。理由は何ですか? – Curious

+0

私は、setwd()を使って単語のディレクトリを変更しようとするとエラーが発生していることに気付きました。作業ディレクトリを変更することは可能でしょうか? – Curious

関連する問題