2016-06-01 14 views
0

私はdbというデータフレームのリストを持っています。各データフレームにはその名前が付いています。 私が使用します。lapplyを使ってリストの要素を別のデータフレームに入れる方法

lapply(names(db), 
     function(x)write.csv(db[x], 
          file =paste0(x,'.csv'))) 

d.framesを抽出し、CSVファイルに保存します。

lapply(names(db), 
     function(x)as.data.frame(db[x])) 

しかし、それは私がに異なる名前で各DFを格納することができますどのように、ワークスペースに任意のデータフレームを格納しません: は、今私は、リストからデータフレームをextactし、このコマンドを使用して、異なるデータフレームを作成しようとしていますワークスペース?

答えて

1

我々はdb[x]として[[

lapply(names(db), function(x) write.csv(db[[x]], 
     file =paste0(x,'.csv'), row.names=FALSE, quote= FALSE)) 

list要素を抽出し、これらは、大きなデータセットの場合は、data.tableからfwrite機能は、より効率的であるlength 1.

でまだdata.framelistある

library(data.table) 
lapply(names(db), function(x) fwrite(db[[x]], file = paste0(x, ".csv"))) 


ただ、問題を説明するために、

set.seed(24) 
db <- setNames(lapply(1:3, function(i) as.data.frame(matrix(sample(1:9, 
          5*4, replace=TRUE), ncol=4))), paste0("df", 1:3)) 

OPのアプローチと[[の違いは、それはデシベルのnamesからプレフィックスを持つ列名を持つファイルをwriteますOPのアプローチであります一方、[[にはこのような問題はありません。


第二の問題に関しては、それが地球環境に複数のオブジェクトを作成して、我々は

list2env(db, envir = .GlobalEnv) 

「DB」に直接list2envを使用することができます。しかし、これはのそれほとんどとして推奨されていません操作はlist内で行うことができます。

df1 
# V1 V2 V3 V4 
#1 3 9 6 9 
#2 3 3 4 2 
#3 7 7 7 1 
#4 5 8 7 5 
#5 6 3 3 2 
関連する問題