Я пишу сценарий R, чтобы получить некоторые данные базы данных, а затем делать с ним все, используя пакет RODBC. В настоящее время все мои команды sqlQuery - одна длинная строка;Есть ли лучший способ кодировать этот sqlQuery в R?
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)
Но мне не нравится, когда нужно ставить кавычки вокруг каждой линии и получать правильные пробелы. Есть ли способ лучше ?
Посмотрите на http://stackoverflow.com/questions/1630724/can-i-gracefully-include-formatted-sql-strings-in-an-r-script – Marek
Этот вопрос и один Marek связывают также оба ссылаются на проблемы с новыми строками. Я использую синтаксис пасты, как gd047 использует в своем ответе ниже и не имеет проблем с новыми строками. Я использовал этот синтаксис как с SQL Server, так и с Oracle. Какая база данных дает вам печаль о новом синтаксисе строк? –
У меня не было никаких ошибок в результате переводов строк, у меня просто было плохое чувство их наличия, но, возможно, это я ошибаюсь ... (db - оракул, если это имеет значение) – PaulHurleyuk