2016-09-28 17 views
1

複数のリストをデータフレームに変換するためのループを作成し、各データフレームをcsvとして書き込む必要があります。私は、(i)リストをすべてリストから外してdata.framesに変換するループを実行し、(ii)各リストをCSVとして書きたいと思う。複数のリストをループしてRでデータフレームを作成するにはどうすればよいですか?

私のリストの1つで動作する以下のスクリプトを実行しましたが、それらの多くで同じことをする必要があります。

スクリプトデータフレーム内のネストされたリスト(例えば、リスト1)を変換し、CSV

data <- as.data.frame(t(do.call(rbind,unlist(list1,recursive = FALSE)))) 
write.csv(data,"list1.csv")) 

として書き込むための「リスト1は、」私は、例として書いた私のリストの一つであることに注意してください。私はすべての私のリストの名前がR環境でロードされるベクトルを得るためにスクリプト(done <- ls(pattern="list"))を作成しました。だから、私はステップ(i)と(ii)を "done"ベクトルのすべての名前に適用する必要があります。それは今より明白でしたか?

ループを作成する手助けがあれば本当にありがたいですか?

+0

'data.frame(list1)'を試しましたか? Rでは、data.frameは1つずつ縦に並べて表示されたリストです。この構文は、各サブリストが目的のdata.frameの列であると仮定すると、ネストされたリストでも機能します。 – Vlo

+0

私は既に各リストから各データフレームを取り出す方法を知っています(上記のスクリプトを参照してください)。しかし、問題は私がリストを知っていることで、すべて同じスクリプトを実行したいのです。私はループが必要です。 – Juani

+0

同様の質問/回答[こちら](http://stackoverflow.com/questions/26707724/writing-multiple-data-frames-into-csv-files-using-r) – aosmith

答えて

0
for(i in 1:nrow(done){ 
     list_name <- done[i] 
     data <- as.data.frame(t(do.call(rbind,unlist(noquote(list_name),recursive = FALSE)))) 
     write.csv(data,paste0(list_name,".csv")) 
} 
+0

私はそれがほぼそこにあると思うが、私は次のエラーがあると思う:do.call(rbind、unlist(noquote(list_name)、recursive = FALSE)のエラー): 2番目の引数はリスト – Juani

0
fun <- function(x){ 
    data <- as.data.frame(t(do.call(rbind,unlist(paste0("list",x),recursive = FALSE)))) 
    write.csv(data,paste0("list",x,".csv")) 
} 

fun(1:n) 

私は、これが最も効率的な方法であると考えています。

関連する問題