3
我正在编写一个R脚本来获取一些数据库数据,然后使用RODBC软件包进行一些操作。目前我所有的sqlQuery命令都是一个长字符串;有没有更好的方式来编写R中的这个sqlQuery?
stsample<-sqlQuery(odcon, paste"select * from bob.DESIGNSAMPLE T1, bob.DESIGNSUBJECTGROUP T2, bob.DESIGNEVENT T3, bob.CONFIGSAMPLETYPES T4 WHERE T1.SUBJECTGROUPID = T2.SUBJECTGROUPID AND T1.TREATMENTEVENTID = T3.TREATMENTEVENTID AND T1.SAMPLETYPEKEY = T4.SAMPLETYPEKEY AND T1.STUDYID = T2.STUDYID AND T1.STUDYID = T3.STUDYID AND T1.STUDYID = ", chstudid, sep=""))
head(stsample)
它看起来很丑,很难读/更新。我已经试过把它们放在多行中,但是随后新的行字符会阻挡,目前我最好的是使用大量的粘贴;
stsample<-sqlQuery(odcon,
paste(
"select ",
"* ",
"from ",
"BOB.DESIGNSAMPLE T1, ",
"BOB.DESIGNSUBJECTGROUP T2, ",
"BOB.DESIGNEVENT T3, ",
"BOB.CONFIGSAMPLETYPES T4 ",
"WHERE ",
"T1.SUBJECTGROUPID = T2.SUBJECTGROUPID ",
"AND T1.TREATMENTEVENTID = T3.TREATMENTEVENTID ",
"AND T1.SAMPLETYPEKEY = T4.SAMPLETYPEKEY ",
"AND T1.STUDYID = T2.STUDYID ",
"AND T1.STUDYID = T3.STUDYID ",
"AND T1.STUDYID = ",chstudid,
sep="")
)
head(stsample)
但我不喜欢在everyline周围加上引号,并且让我的空白正确。有没有更好的办法 ?
看看http://stackoverflow.com/questions/1630724/can-i-gracefully-include-formatted-sql-strings-in-an-r-script – Marek 2010-02-25 11:07:18
这个问题和一个马立克链接太暗示了新的生产线问题。我在下面的回答中使用了gd047使用的粘贴语法,并且没有新的换行符问题。我在SQL Server和Oracle中都使用了这种语法。什么数据库让你对新的行语法感到悲伤? – 2010-02-25 17:01:41
由于换行符,我没有任何错误,我只是对他们有一种不好的感觉,但也许这是我错了......(数据库是甲骨文,如果它很重要) – PaulHurleyuk 2010-02-25 17:50:28