将粘贴SQL查询复制到R中的简单方法

将粘贴SQL查询复制到R中的简单方法,r,R,我正试图使用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中的query

我正试图使用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变量,我会将其放入粘贴中,但即使这样,我也必须遍历并用逗号分隔每一行,以便它正确地通过getDBQuery。有没有人找到一种优雅的方法来将SQL语法复制并粘贴到R中,而不需要太多的修复?“粘贴”中是否有允许您忽略新行“\n”的选项,或者我是否可以创建自定义函数


谢谢你

正如本杰明在评论中解释的那样,你可以简单地将你的文本用引号括起来。例如:

library(sqldf)

df = data.frame(x=c(1,2,3,4,5),y=c(2,2,3,3,3))
my_query = 'SELECT DISTINCT
      y FROM
      df
      where x>3'

df2 <- sqldf(my_query)

还有一些工具可以用普通SQL生成适当的Java、C、VB等语句。只需剪切粘贴即可。
我为此编写的格式化程序是SQLinForm,它根据您所处的环境有几个免费的格式化程序。链接是

我不清楚为什么不能在这里用引号括起查询并将其传递给querystring。这是我经常做的事。也许您希望在R代码中看到的示例会有所帮助。因此,如果将上述内容包装在pastesql_查询中,则变量querystring会由于空格而具有所有“\n”。我相信这就是导致我的查询中出现问题的原因。如果问题是由\n引起的,我会感到惊讶。我的问题充满了这些。它们应该以空白形式传递,SQL是不可知的。我会将SQL代码放入一个文本配置文件中,每个查询一个文件,然后通过我的查询字符串读取。好的,我让它工作了,我想令人沮丧的是,你必须突出显示整个查询才能工作。当我嵌入到粘贴中时,它不起作用。谢谢