2016-10-10 16 views
2

私はR ProgrammingとMySQLの新機能です。私は、Rプログラミングから変数を読み込む必要があり、それらをMySQLの関数への入力として渡す必要があるという要件があります。 誰かがこの点で私を助けてくれますか?rプログラムからmysql関数に変数を渡す方法

options(echo=FALSE) 
args <- commandArgs(trailingOnly=TRUE) 
start.date <- as.Date(args[1]) 
end.date <- as.Date(args[2]) 
library(RMySQL) 
mydb = dbConnect(mydb,xxxx) 
rs <- dbSendQuery(mydb,"SELECT COMPUTE_WEEKS(start.date,end.date) FROM DUAL;") 

以下はエラーです。

RS < - dbSendQuery(mydbという、 "DUAL FROM COMPUTE_WEEKS(start.date、end.date)を選択します。")は.local(CONN、声明、...)で エラー: 文を実行できませんでした:不明フィールドリストのテーブル 'start'

r-programからデータを読み込み、My-SQLのプロシージャ/関数の引数として渡す方法を理解する必要があります。現在、RMysqlライブラリを使用しています。

よろしく Bhanu Pratap M

答えて

1

あなたはstart.dateend.dateと呼ばR変数を含めたい場合は、クエリ文字列を構築するためにpasteを使用することができます。

query <- paste0("SELECT COMPUTE_WEEKS(", start.date, ", ", end.date, ") FROM DUAL;") 
mydb <- dbConnect(mydb, xxxx) 
rs <- dbSendQuery(mydb, query) 
0

あなたは最初に設定する必要があります変数としての考慮の日付の値。そして、それらを簡単にpaste0 -statementに入れることができます。以下のコードを参照してください。さらに、MySQLでは日付を引用符で囲む必要があります。これはTim Biegeleisenの答えでは考慮されていません。

library(RMySQL) 

#Set start and end date 
start <- "2016-01-01" 
end <- "2016-02-01" 

un <- "" # Set user name 
pw <- "" # Set pass word 
host <- "" # set host 
name <- "" # data base name 

# Conncect to data base 
db <- dbConnect(MySQL(), user = un, password = pw, host = host, dbname = name) 

# State your query 
query  <- paste0("SELECT COMPUTE_WEEKS('", start, "', '", end, "') FROM DUAL") 

# Send query to data base 
send_query <- dbSendQuery(db, query) 

# Unfetch query to get results in data frame 
df   <- fetch(send_query, n = -1) 
+0

ありがとうございました。上記の提案された方法論が働いた。 – Pratap

+0

@Pratapご返信ありがとうございます。私の答えが役に立つなら、それを正しい答えとして受け入れることができます。私の答えの左にあるチェックマークの上にマウスを置いてクリックしてください。あなたはまた、私の答えをupvote。 –

関連する問題