2017-02-14 7 views
0

内のリストからデータフレーム名を取得:私は抽出する必要がは、私が環境からすべてのデータフレームを取得し、いくつかのものを行うループ

dfs <- Filter(function(x) is(x, "data.frame"), mget(ls())) 

names(dfs) 

"customers" 
"sales" 
"campaigns" 

まず最初は、ループ内のオブジェクト名です:

for (df in dfs) { 
    df_name <- deparse(substitute(df)) 
    # do some stuff 
    # do some more stuff 
    print(df_name) 
} 

しかし、その代わりに、データフレーム名が動作するために私が手:

"df" 
"df" 
"df" 

私はあまりにもループ内で機能をテストしてみた:

find_name <- function(df) { 
    df_name_is <- substitute(df) 
    return(df_name_is) 
} 

しかし、出力は次のようになります。DFのnamesをループ

df 
df 
df 

は私にすべてのDFはなく、DF名自体のcolnamesを取得します。

どのようなヒントもありがとうございます

+0

は私にすべてのDF – Forge

+0

bouncyballのCOLNAMESを取得し ' print(df) 'はすべてのdfの完全な内容を返しますが、名前だけが必要です – Forge

答えて

2

名前の代わりにカウンタ(長さ)によって使用されるループを気にしない場合、これは有効なアプローチである:DFの名前をループ

for (i in 1:length(dfs)) { 

print(names(dfs)[i]) 

} 
2

名前の繰り返しはどうですか?

for (df_name in names(dfs)) { 
    print(df_name) 
    df_obj <- dfs[[df_nmae]] 
} 
関連する問題