21

簡単な方法で多くのデータ フレームをリストに入れることは可能ですか? 次の方法のように、各名前を手動で記述する必要がないことを意味します。

list_of_df <- list(data_frame1,data_frame2,data_frame3, ....)

すべてのデータ フレームをワークスペースにロードしました。リストを使用して、すべてのデータ フレームをループします (各データ フレームで同じ操作を実行します)。

4

3 に答える 3

30

次のように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 から任意の数の数字が続くすべての をロードします。

于 2013-02-19T09:55:26.507 に答える
8

最も簡単な解決策は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()
于 2013-02-19T09:55:32.333 に答える
5

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"
于 2013-02-19T09:54:17.433 に答える