2013-07-17 11 views
23

これはおそらく本当に簡単な質問です。私はデータフレーム(df1、df2 .... dfn)のリストを持っています。すなわち、リストの各要素はデータフレームです。だから、基本的には、リストは次のように作成されました:データフレームのリストをリストから外す

mylist = list(df1, df2,...., dfn) 

しかし、私は逆にどのように行うのですか、それは非公開にあるので、DF1、DF2などは、ワークスペースで別々に存在しますか?

+0

感謝。あなたはテレパスですか? – user702432

+3

質問は*すべきです、なぜあなたは*これをやりたいですか?すべてのdfを素敵なリストに入れておけば、別のオブジェクトにする必要はほとんどありません。あなたはあなたのリストの要素としてそれらを扱うことができます。 –

+2

Simonと同意します。名前で呼び出す場合は、リスト内で名前を付けるほうがよいでしょう。 'myList [list(df1 = data.frame(...)、df2 = data.frame(...)、...)'を呼び出し、それらを 'myList [['df1']' – geotheory

答えて

50

使用list2envそれは特別に、このために設計されている:名前付きリストXから

、作成すべてのリスト コンポーネントをオブジェクトとして含む環境、またはxから既存の 環境への「マルチアサイン」だからここ

list2env(mylist ,.GlobalEnv) 
+7

+1私はこの機能が存在しないことを知りませんでした。 –

+0

Brilliant!どうもありがとう。 – user702432

11

あなたは単にそのようなassign機能とともに、forループを使用することができます。

# Sample data 
df.list <- list(data.frame(x = 1:3, y = c(10, 20, 30)), 
       data.frame(x = 4:6, y = c(40, 50, 60)), 
       data.frame(x = 7:9, y = c(70, 80, 90))) 

# Write out single data frames 
for (i in seq(df.list)) 
    assign(paste0("df", i), df.list[[i]]) 
+1

名前のないリストがあるときは最高の解決策です。 – NoThanks

+0

本当にエレガント! –

関連する問題