我试图在R中编写一个函数,它接受一个输入并将其添加到预定义的SQL查询中。这是为了避免每次输入更改时重写相同的查询,而是使用该函数。
但是我遇到了函数语法的问题。
功能
该函数将input
作为唯一ID,并返回站点名称。
library(RODBC)
con= odbcConnect(dsn = "DB", uid="morp101", pwd="abcdxyz1234",rows_at_time=500)
getsitename=function(input) {
sitename=sqlQuery(con,"Select DISTINCT(SITE_NAME) FROM SITE_TABLE
WHERE SITE_CODE = '&input&'")
return(sitename)
}
上述功能在测试时应提供以下输出
getsitename(1011APQ)
结果:麦迪逊湾
但是语法错误,不确定如何正确连接input
。
任何建议都将受到高度赞赏。对于缺乏可重复数据的道歉,我不知道如何才能获得这个问题。
答案 0 :(得分:1)
您可以使用paste0()
创建查询:
getsitename=function(input) {
query = paste0("Select DISTINCT(SITE_NAME) FROM SITE_TABLE WHERE SITE_CODE = '", input, "'")
sitename=sqlQuery(con,query)
return(sitename)
}
因此,当input='1234'
时,paste0()
语句返回
"Select DISTINCT(SITE_NAME) FROM SITE_TABLE WHERE SITE_CODE = '1234'"