【发布时间】:2018-01-22 18:42:14
【问题描述】:
我正在尝试使用odbc 将我的所有数据处理从 SQL 移动到 R 中,因为无论如何我都是在这里进行所有数据清理/分析的。在将查询移至 R 时,我无法找到一种简单的方法来将字符串复制粘贴为可读格式。假设我在 SQL 中有以下查询:
SELECT
col1,
sum(col2) sum_col2,
col3
FROM
db.table1 t1
WHERE
col1 > 0
AND col6 BETWEEN .5 AND 1.76
GROUP BY
col1,
col3
如果我要尝试将其分配给 R 中的 querystring 变量,我会将其放在 paste 中,但即便如此我也必须通过并用逗号分隔每一行正确通过getDBQuery。有没有人找到一种不需要太多修复的优雅方法将 SQL 语法复制并粘贴到 R 中? paste 中是否有允许您忽略新行 '\n' 的选项,或者我可以创建自定义函数吗?
谢谢
【问题讨论】:
-
我不清楚为什么你不能把你的查询用引号括起来然后传递给
querystring。这是我经常做的事情。也许您希望在 R 代码中看起来像这样的示例会有所帮助。 -
因此,如果将上述内容包装在
paste("sql_query")中,则变量querystring由于空格而具有所有'\n'。而且(我相信)这就是导致我的查询通过的问题 -
如果
\n引起了问题,我会感到惊讶。我的查询充满了这些。它们应该作为空格传递,SQL 是不可知的。 -
我会将 SQL 代码放入一个文本配置文件(每个查询一个文件)并通过
my_query_string <- readLines("my_query_file.sql")读取它,因此无需更改任何内容。请注意,这可能是一个安全问题(通过编辑文件进行 SQL 代码注入 ;-)
标签: r