2016-03-31 5 views
1

rでデータフレームを表示する方法はありますか?別の変数で参照していますか?私はdf1からdf10という名前の10のデータフレームを持っていると言いますが、私は1:10の代わりにiを使っている間にそれらを見ることができる方法はありますか? 例:名前をrに貼り付けてデータフレームを表示

df1 = as.data.frame(c(1:20)) 
i = 1 

View(paste("df", i, sep ="")) 

私はビュー(DF1)と同じ操作を行うために、このコードの最後のピースをしたいと思います。あなたがそうすることを可能にするコマンドや類似のRがありますか?

+0

'ビューを試してみてください(evalの(解析(テキスト=ペースト( "DF"、私は、9月= ""))))'。 – coffeinjunky

+1

私は「eval(parse(text = ...))」を含む何かを試してはいけないと言うことを強いられていると感じ、私はあなたに 'get'について知らせてもらって、まったく正直であることを少しでも感じます。 – joran

答えて

1

あなたの即時の質問への答えはget次のとおりです。

df1 <- data.frame(x = 1:5) 
df2 <- data.frame(x = 6:10) 
> get(paste0("df",1)) 
    x 
1 1 
2 2 
3 3 
4 4 
5 5 

しかしdf1df2のような名前を持つ複数の類似したオブジェクトを持つ、などのワークスペースでは、Rでかなり悪い習慣と考えられ、その代わりにRの人々を経験しているだろう名前のリストに関連するオブジェクトを置くことを好む:

df_list <- setNames(list(df1,df2),paste0("df",1:2)) 
> df_list[[paste0("df",1)]] 
    x 
1 1 
2 2 
3 3 
4 4 
5 5 
+0

ありがとうございます。うまく働く!しかし、同じ方法でこのデータフレームに物を救う方法はありますか? get(paste0( "df"、1))$ a = 3と書くと、 "代入対象が非言語オブジェクトに展開される"というエラーが出ます。 – Alfemann

+3

@Alfemann「get」は悪い考えでしたが、何とか誰も聞いていないことを覚えておいてください。他のオプションを試して、 'df_list [[paste0(" df "、1)]] $ y < - letters [1:5]'を実行してください。 – joran

関連する問題