我希望使用sqldf并能够编写SQL语句,就像在sql命令终端中编写sql语句一样。
例如,下面是手册中的一个查询:
Gavg <- sqldf("select g, avg(v) as avg_v from DF group by g")如果我使用的是一个单独的SQL文件,查询将被写入:
select g,
avg(v) as avg_v
from "DF"
group by g但是,如果我将其写为:
Gavg <- sqldf("
select g,
avg(v) as avg_v
from "DF"
group by g
")我希望能够将代码片段复制/粘贴到sqldf(“")周围的区域,而不必转义引号,也不必引用包含命令的外部sql文件。
这个是可能的吗?
发布于 2013-09-08 18:52:05
对于用例来说,最简单的方法可能只是编写一些包装器函数,为您转义所有这些字符。例如,像这样的东西应该能起作用:
escape.quote <- function(){
s <- paste(scan(what=character(),sep="\n"),collapse=" ")
s <- gsub('"','\"',s)
s <- gsub("'","\'",s)
return(s)
} 然后,只需将其插入sqldf()调用中,并在其中复制和粘贴查询。就像这样:
> library(sqldf)
> set.seed(2)
> DF <- data.frame(g=rep(1:2,5),v=rnorm(10))
> sqldf(escape.quote())
1: select g,
2: avg(v) as avg_v
3: from "DF"
4: group by g
5:
Read 4 items
g avg_v
1 1 0.6606215
2 2 -0.2383182https://stackoverflow.com/questions/18686083
复制相似问题