2016-10-10 41 views
2

我是R编程和MySQL的新手。我有一个要求,我需要从R Programming中读取变量,并且需要将这些变量作为输入传递给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, “SELECT COMPUTE_WEEKS(start.date,end.date)FROM DUAL;”) 错误。本地(康涅狄格州,声明,...): 无法运行语句:未知字段列表中的'开始'

需要了解如何从r程序中读取数据并将其作为参数传递给My-SQL中的过程/函数。目前使用RMysql库。

问候 巴努•普拉塔普中号

回答

1

如果要包括R参数称为start.dateend.date,那么你可以使用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感谢您的回复。如果我的回答很有帮助,你可以接受它作为正确的答案。只需将鼠标悬停在答案左侧的复选标记上并点击即可。然后你也提出了我的答案。 –

相关问题