我有一个相当简单的问题。
每天,我使用RODBC包在R中执行数据分析。我使用SQL将其连接到我们的数据仓库并将其移至R环境
dbhandle <- odbcDriverConnect('driver={SQL Server};server=SQLSERVER;database=MYDATABASE;trusted_connection=true')
degrees <- sqlQuery(dbhandle, "select Inst, ID, DegreeDate, Degree from DEGREE where FY = ('2015') group by Inst, ID, DegreeDate, Degree order by Inst, ID, DegreeDate, Degree", as.is=TRUE)
您知道如何在MS Access中弹出一个窗口,询问您例如什么FY?您在2015年投入,您将获得该会计年度的所有费用。
有什么办法可以在R中做到吗?我在Stack Overflow上看到的参数查询问题涉及更改SQL数据库中的数据,对此我不感兴趣。我只想设置一些基本的限制,以便重新运行代码。
有人可能会想:“为什么不能只将5更改为6?” 这是一个公平的观点,但是我担心,由于查询更加复杂,用户可能会错过SQL查询中将5更改为6的部分,这会使分析混乱或减慢分析速度。
谢谢!沃克
您可以在开始时创建一个输入变量,并将其传递给查询。例如:
# Change your FY here
input_FY <- 2016
dbhandle <- odbcDriverConnect('driver={SQL Server};server=SQLSERVER;database=MYDATABASE;trusted_connection=true')
degrees <- sqlQuery(dbhandle, paste0("
select Inst, ID, DegreeDate, Degree
from DEGREE
where FY = ('", input_FY, "')
group by Inst, ID, DegreeDate, Degree
order by Inst, ID, DegreeDate, Degree"),
as.is=TRUE)
因此,对于任何复杂的查询,您仍然可以传递相同的input_FY
变量或在代码开始时声明的任何其他变量,以进行快速/轻松的更新。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句