簡単な方法で多くのデータ フレームをリストに入れることは可能ですか? 次の方法のように、各名前を手動で記述する必要がないことを意味します。
list_of_df <- list(data_frame1,data_frame2,data_frame3, ....)
すべてのデータ フレームをワークスペースにロードしました。リストを使用して、すべてのデータ フレームをループします (各データ フレームで同じ操作を実行します)。
次のようにls()
使用できます。get
l.df <- lapply(ls(), function(x) if (class(get(x)) == "data.frame") get(x))
これにより、現在の環境のワークスペースからすべての data.frames が読み込まれます。
あるいは、@agstudy が示唆するように、pattern を使用しdata.frame
て必要な s だけをロードすることもできます。
l.df <- lapply(ls(pattern="df[0-9]+"), function(x) get(x))
data.frame
現在の環境でdf
、1 から任意の数の数字が続くすべての をロードします。
最も簡単な解決策はdata.frame
、 を作成したリストに を入れることです。ただし、オブジェクト名の文字リストがあると仮定します。
list_df = lapply(list_object_names, get)
次のようにリストを作成できる場所 (10 個のオブジェクトの例):
list_object_names = sprintf("data_frame%s", 1:10)
または、現在のワークスペース内のすべてのオブジェクトをリストに取得します。
list_df = lapply(ls(), get)
names(list_df) = ls()
ls
たとえば、特定のパターンで使用できます。例えば:
いくつかのdata.frames:
data.frame1 <- data.frame()
data.frame2 <- data.frame()
data.frame3 <- data.frame()
data.frame4 <- data.frame()
list(ls(pattern='data.fra*'))
[[1]]
[1] "data.frame1" "data.frame2" "data.frame3" "data.frame4"