2016-04-09 9 views
-3

1つのファイルに保存したい行数が異なる(1行に1行以上)データフレームのリストがあります。を追加したり別々のファイルに保存する必要はありません。異なる情報とデータ型を持つので、データフレームの一覧の構造を維持するようにRで異なる行数のデータフレームのリストを1つのファイルに保存する方法は?

data2 <- list("inventory"=inventory,"Warehouse"=Warehouse,"Shop_inventory"=Shop,"Result"=Result) 

それは別のファイルに各データフレームを保存して、それが唯一可能なようだ:

write.table(data2[[1]],"./df1.csv",sep = ",") 
write.table(data2[[2]],"./df2.csv",sep = ",") 

となどしかし、私は選択肢があるべき賭けることができます。

MS Access-friendlyタイプのファイルとして保存する方法があれば理想的です。 Hmiscパッケージにはmdb.get()の機能があります。私はそのような形式でファイルを書くことができる同様のものがあるのだろうか?ここで

+0

install.packagesは(「XLConnect」) – Adam

+0

の現在の作業ディレクトリに作成されたというファイルfilename.xlsxにそれぞれに異なるデータを持つ4枚を持って、私は信じてExcelができません1M行以上取る? – Damian

+0

これはRの質問ではありません。あなたの質問は「Excelより優れているもの」です。面白いのは、答えはRです。 – Adam

答えて

1

は、一般的なアプローチは、これは、すべてのdata.frameのオブジェクトが同じカラム名を持っていることを前提としない

# a list of data.frames 
df1 <- data.frame(x=1:3, y=letters[1:3]) 
df2 <- data.frame(x=11:13, y=letters[11:13]) 
x <- list(df1, df2) 

# combine 
y <- do.call(rbind, x) 

# write to csv 
write.csv(y, 'test.csv', row.names=FALSE) 

です。

+0

ありがとう、ロバート!私は質問を編集して、実際に問題が何であるかをより明確に述べています。各データフレームには異なるデータがあり、追加することはできません。 – Damian

+0

これは、再現可能な例(および明確な質問)を提供することが非常に重要な理由です。 'saveRDS'を使ってリストを一つのファイルに保存することができます。それはあなたが "アクセスフレンドリー"で心に持っているものは明確ではありません。 – RobertH

+0

Robert、私はMS Accessと互換性のあるフォーマットで単一のファイルにデータフレームのリストを保存することを意味しました。 – Damian

0

ここではirisデータセットを使用し、サンプルデータフレームdfを作成します。 xlsxパッケージのwrite.xlsx関数と引数append=TRUEを使用します。あなたの要求に応じてrow.namescol.namesFALSEまたはTRUEに等しく保つことができます。 file引数は同じにしてください。

library(xlsx) 
    df <- data.frame(a=1:10,b=11:20,c=21:30) 

    write.xlsx(iris$Species, file="filename.xlsx", sheetName="Data1",row.names=F, col.names=F) 
    write.xlsx(iris$Sepal.Length, file="filename.xlsx", sheetName="Data2",row.names=F, col.names=F,append=TRUE) 
    write.xlsx(iris$Petal.Length, file="filename.xlsx", sheetName="Data3",row.names=F, col.names=F, append=TRUE) 
    write.xlsx(df, file="filename.xlsx", sheetName="Data4",row.names=F, col.names=T, append=TRUE) 

出力はR.

+0

ありがとう、Sowmya。しかし、各データフレームには1M行以上の問題があります。これが、1M行以上のファイルを扱うためのツールとしてAccessを挙げた理由です。 – Damian

+0

大きなファイルで再生できるツールを最初に検索し、追加することなくファイルを1つのファイルに保存する方法を尋ねたので、そのファイルをその形式にエクスポートするだけでRに移動する必要があります。 Excelシートの行数は1,048,576です。その他のツールとしては、Power Pivotアドインを使用して10億行を処理できます。次に、データフレームのエクスポートを考えることができます。 –

+0

また、Delimitという名前のソフトウェアもあります。 –

関連する問題