R sprintf在sqldf中就像

埃尔伯特

我想在R中使用sqldf进行循环查询,以选择日期为“ 11/12/2015”且在9AM的所有非NULL X.1变量。例子 :

StartDate              X.1
11/12/2015 09:14        A
11/12/2015 09:36        
11/12/2015 09:54        A

日期在从其他查询生成的变量中

nullob<-0
dayminnull<-as.numeric(sqldf("SELECT substr(Min(StartDate),1,03)as hari     from testes")) # this produce "11/12/2015"
  for (i in 1 : 12){
    dday<-mdy(dayminnull)+days(i) #go to next day
    sqlsql <- sprintf("SELECT count([X.1]) FROM testes where StartDate like '% \%s 09: %'", dday)
    x[i]<-sqldf(sqlsql)
    nullob<-nullob+x[i]
}

它带有错误:sprintf(“ SELECT count([X.1])from Testes WHERE StartDate like'%% s 09%'”中的错误,:无法识别的格式规范'%'

格雷戈尔·托马斯(Gregor Thomas)

它不是超级的文件中明确,而是%接着一个%,那就是%%,就是告诉方式sprintf使用文本%我们可以很容易地测试一下:

sprintf("%% %s %%", "hi")
[1] "% hi %" 

对于您的查询字符串,这应该可以工作:

sprintf("SELECT count([X.1]) FROM testes where StartDate like '%% %s 09: %%'", dday)

来自?sprintf

字符串fmt包含传递到输出字符串的普通字符,以及对通过提供的参数进行操作的转换规范...允许的转换规范以a%开头,以集合中的字母之一结尾aAdifeEgGosxX%这些字母表示以下类型:

... [有关文档aAdifeEgGosxX]

  • %:立即数%(在这种情况下,不允许使用以下任何额外的格式化字符)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档