r - 循环遍历日期以获取 R 数据库中每天的所有表

标签 r sql

我需要在 R 中构造一个 mysql 查询,该查询必须在引号中包含日期。如何将其与粘贴功能一起使用并获得正确的引号?看来引号必须与粘贴一起使用,我无法将 R 对象放在引号内。

例如:

# set the beginning and ending dates for the year 2013
date <-  as.Date('2013/01/01',format = "%Y/%m/%d")
date2 <-  as.Date('2013/12/31',format = "%Y/%m/%d")

# create a sequence of every day in this year
s <- seq(date,to = date2, by='days') 

# loop through all 365 days in the year to get a query for each day
for (i in 1:365) {
query <- paste0('select ID, Name, Account, FROM Table WHERE Date = ',s[[i]]) 
}

这会产生以下查询(针对某一天):

 "select ID, Name, Account, FROM Table WHERE Date = 2013-01-01"

但是mySql要求日期是这样的(在日期周围加上引号)

 "select ID, Name, Account, FROM Table WHERE Date = '2013-01-01'"

如何使用粘贴函数在 R 对象周围添加引号?

最佳答案

如果用双引号表示字符串开始和结束,则可以在字符串中使用单引号。

paste0("select ID, Name, Account, FROM Table WHERE Date = '", s[[i]], "'")

应该可以正常工作。

顺便说一句,对于在字符串中间插入内容,我发现 sprintf()paste 更具可读性。另外,您的 s 对象只是日期向量,因此您不需要双括号(尽管它们也没有真正的伤害)。

sprintf("select ID, Name, Account, FROM Table WHERE Date = '%s'", s[i])

关于r - 循环遍历日期以获取 R 数据库中每天的所有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22770706/

相关文章:

r - 如何拆分 R 中的数据框列

mysql - SQL 时间 24 小时到 12 小时格式

java - 使用某些条件检索最后 N 行的 Eclipselink 表达式

r - 填充ggplot2 : geom_area()中折线图下的区域

r - 带插入符的预测区间

mysql - 论坛MySQL查询

mysql - 检索数据的 SQL 查询

MySQL根据条件计数和求和

r - 如何在R中的一个分类变量中组合两个级别

r - 在 igraph 中获取边的目标或源