2016-05-06 10 views
0

データベースからテーブルの名前を取得していて、各テーブルからすべてのデータを選択してデータフレームを自動的に作成したい。Rベクトルの値を使用してデータフレームの名前にする

qry <- list() 
for (i in 1:length(nm)) { 
    qry[i] <- paste0("select * from ", nm[i]) 
    } 
:私は、ループ内の各値のクエリのリストを作成し、例として

nm = c("Account", "Credit__Amortization_Payment__c", "Credit__Amortization_Schedule__c", "Credit__Loan_Payment__c", "Credit__Loan__c") 

[1] "Account"       "Credit__Amortization_Payment__c" 
[3] "Credit__Amortization_Schedule__c" "Credit__Loan_Payment__c"   
[5] "Credit__Loan__c" 

:コード

nm = dbListTables(connection) 

のようなベクターを作成します

次に、私はどのようにnaを保存するか分かりません私はベクトルからの値としてデータフレームの私は、このように手動でそれを入力する必要がありますが、私はちょうどリストnmと同じ名前と構造を持つデータフレームを保存するそれをループしたいと思います。

q = paste0(qry[1]) 
rs <- dbSendQuery(con, q) 
Account <- dbFetch(rs, n=-1) 

私は手動で、ベクトルの各値のために、ここでそれを繰り返すが、私は自動的にNM = dbListTables(接続)

q = paste0(qry[3]) 
rs <- dbSendQuery(con, q) 
Credit__Amortization_Schedule__c <- dbFetch(rs, n=-1) 
+0

私はnm [i] nm [1] = Account、nm [3] = Credit__Amortization_Schedule__cのようにデータフレーム名を付けたいと思います。 –

+0

'?setNames'を見てください – Benjamin

答えて

0

の値に基づいてこれを実行したいと思い、私はassignは何だと思います探している、例えば

> assign("x", 5) 
> x 
[1] 5 

あなたの場合、例:クエリ1の場合

q <- paste0(qry[1]) 
rs <- dbSendQuery(con, q) 
assign(nm[1], dbFetch(rs, n=-1)) 

が有効です。 R FAQもご覧ください。

+0

それは素晴らしいです。私はちょうど割り当てを見つける方法を見つけるために質問を正確に求めることができませんでした。今度はすべてが1つのループで動作します:qry [i] < - paste0( "select * from"、nm [i]) q = paste0(qry [i]) (nm [i]、dbFetch(rs、n = -1)) を割り当てます。 –

関連する問題