下面的我的R代码。注意以下是两个字符串;我试图通过添加视角变量来参数化“查询”字符串,以便如果我想更改查询字符串视角,则只需要更新视角变量即可。
perspective <- 'GR'
query <- "select portname, description, sum(loss) as 'perspective'_loss
from table1
where perspcode = 'perspective'"
[1)fn $在带有带fn $的SQL语句的命令前添加命令,然后可以如图所示进行操作。请注意,插入到字符串中的变量的名称中应仅包含字母和数字,因为它假定第一个字符(不是其中一个)以名称结尾。 fn $来自gsubfn。实际上sqldf已经加载了gsubfn,但是如果您不使用sqldf,例如也许您正在使用RSQLite,那么您将需要该库调用。
library(sqldf)
library(gsubfn)
Species <- "setosa"
fn$sqldf("select count(*) as count from iris where Species = '$Species'")
## count
## 1 50
有关更多信息,请参见?fn,另请参见sqldf github主页上的示例。 https://github.com/ggrothendieck/sqldf
[2)sprintf我们可以交替使用sprintf
:
sql <- sprintf("select count(*) as count from iris where Species = '%s'", Species)
sqldf(sql)
[3)粘贴使用paste或paste0是另一种选择,但上述操作似乎更容易。