2017-03-15 1 views
0

私のタイトルが理にかなっていることを願っています!それを編集する気にしない場合。値のテーブルに基づいて花を引き出すためにgsubをループする

私は、Rにユニークな日付を含むテーブルを持っています。時々このテーブルは複数の日付を持つかもしれない他の時に1つの日付を持つかもしれません。私はデータを引き出してpx_tblに追加するために作成したSQLクエリにこれらのユニークな日付をループしたいと思います。しかし、私はどこで始めるべきかは分かりません。以下は私が今までに持っているもので、明らかに1つのユニークな日付しかないのに2つの日付が含まれているときにはうまくいきます。

unique_dates_df 
DATE 
2016-12-15 
2017-02-15 
2017-03-02 
2017-03-09 

sqlCMD_px <- 'SELECT * 
      FROM "_SYS_BIC"."My.Table/PRICE" 
      (\'PLACEHOLDER\' = (\'$$P_EFF_DATE$$\',\'%D\'))' 

sqlCMD_px <- gsub("%D", unique_dates_tbl, sqlCMD_px)##<- the gsub is needed 
so that the dates are formatted correctly for the SQL pull 

px_tbl <- sqlQuery(myconn, sqlCMD_px) 

私は、apply関数がある形式でも動作しますが、それを理解することはできないと確信しています。助けてくれてありがとう!

答えて

1

これは動作するはずです:

#SQL command template 
sqlCmdTemp <- 'SELECT * 
      FROM '_SYS_BIC'.'My.Table/PRICE' 
      (\'PLACEHOLDER\' = (\'$$P_EFF_DATE$$\',\'%D\'))' 

#Dates as character 
unique_dates <- c("2017-03-08","2017-03-09", "2017-03-10") 

#sapply command 
res<-sapply(unique_dates, function(d) { sqlQuery(conn, gsub("%D",d,sqlCmdTemp))},simplify=F) 

#bind rows 
tbl.df<-do.call(rbind,res) 
+0

こんにちはマルチェロ - unique_datesを実際にデータフレームであると私は、データフレームを使用しようとしたとき、私は以下のエラーを取得します。 '引数' replacement 'はlength> 1で、最初の要素のみが' – mannym

+0

@mannym 'となります。データフレームに列が1つしかない場合は、unique_datesの代わりにunique_dates [、1]を使用できます。 – Marcelo

+0

私はそれを試み、それは働いた。質問を更新して回答を編集します。あなたの助けをもう一度ありがとう! – mannym

関連する問題