4

一度に 25 個の .csv ファイルを読み取って作成されたデータ フレームのリストがあります。空間分析を開始するために、データ フレームのリストを解除したいと考えています。つまり、リストの要素ごとに個別のデータ フレームが必要です。

を試しunlist()ましたが、希望する結果が得られません。でのアプローチも試しましたがlapply()、エラーが発生します。これが私が試したことです:

x <- 1:3
y <- 4:6

l <- lapply(1:2, function(x){data.frame(x, y)})

lapply(1:length(l), function(i){paste('df', i, sep = '') <- data.frame(l[[i]])})

問題は、データ フレームを貼り付けた名前に割り当てることにあるようです。それを包むことas.character()は助けにはなりませんでした。

これは機能します:

"df1" <- data.frame(l[[1]])

私のpaste()関数の出力のどこかに問題があるようですが、出力にはstr()「chr」があります。私のアプローチを機能させる方法はありますか?データ フレームをリストから外すよりクリーンな方法はありますか?

4

1 に答える 1

6

それを行う1つの方法:

list2env(setNames(l,paste0("df",seq_along(l))), envir = parent.frame()) 

手遅れになる前に@baptisteのアドバイスに耳を傾け、これを避けるでしょう。なんで?2 日後には、すべてのデータセットに一度に関数を適用しようとしてget()andと乱雑なループを使用して閉じ込められていることに気付くからです。pasteそれらをリストに保持する場合は、lapply(l,functionname).

于 2013-07-10T23:42:56.127 に答える