0

特定の株の取引データを取得する SQL クエリがあります。特定の分析を適用するために、さまざまな株式をループしようとしています。以下のコードは、ループ内のクエリに変数を渡す試みと、「ハードコードされた」クエリを示しています。

どんなガイダンスも大歓迎です。

my.stocks <- c('ABL','IPL')

for (i in 1:2)
{
channel <- odbcConnect("Public_Trades")
my.frame1 <- sqlQuery(channel,
"SELECT TRADE_DATE_TIME,
 PRICE,
 QUANTITY
 FROM [ISLDWODS].[HERMES_PUBLIC].[PUBLIC_TRADES_HISTORY]
 where TRADE_DATE_TIME > '2012-11-01' and TRADE_TYPE ='AT' and INSTR_CODE = " & my.stocks[i] &  
 "order by TRADE_DATE_TIME asc")

my.frame2 <- sqlQuery(channel,
"SELECT TRADE_DATE_TIME,
 PRICE,
 QUANTITY
 FROM [ISLDWODS].[HERMES_PUBLIC].[PUBLIC_TRADES_HISTORY]
 where TRADE_DATE_TIME > '2012-11-01' and TRADE_TYPE in ('AT','UT') and INSTR_CODE = 'MPC'  
 order by TRADE_DATE_TIME asc")


close(channel)
}
4

1 に答える 1

0

ありがとう、シギブ

?paste は問題を解決します:

my.stocks <- c("'ABL'","'IPL'")


for (i in 1:2)
{

my.string1 <- paste("SELECT TRADE_DATE_TIME,PRICE,QUANTITY  
              FROM [ISLDWODS].[HERMES_PUBLIC].[PUBLIC_TRADES_HISTORY] 
              where TRADE_DATE_TIME > '2012-11-01' and TRADE_TYPE ='AT' and INSTR_CODE = ", my.stocks[1]," order by TRADE_DATE_TIME asc")

my.string2 <- paste("SELECT TRADE_DATE_TIME,PRICE,QUANTITY  
              FROM [ISLDWODS].[HERMES_PUBLIC].[PUBLIC_TRADES_HISTORY] 
              where TRADE_DATE_TIME > '2012-11-01' and TRADE_TYPE in ('AT','UT') and INSTR_CODE = ", my.stocks[1]," order by TRADE_DATE_TIME asc")

channel <- odbcConnect("Public_Trades")
my.frame1 <- sqlQuery(channel,my.string1)

my.frame2 <- sqlQuery(channel,my.string2)
}
于 2012-11-22T09:45:59.810 に答える