索引引用检索错误的值

时间:2014-11-17 05:18:42

标签: r indexing

我通过查询SQL在R中生成了一个包含一列日期的数据框。代码的那部分工作正常,但是当我尝试选择数组的索引项1和6时,我得到了错误的结果。例如,如果数据框产生以下结果:

1   2014-11-17;
2   2014-11-14;
3   2014-11-13;
4   2014-11-12;
5   2014-11-11;
6   2014-11-10;
7   2014-11-07;
8   2014-11-06;
9   2014-11-05;
10  2014-11-04;
11  2014-11-03

我想要元素1和6,但是当我尝试时,它返回2014-11-16元素1(TestDate)而不是2014-11-17和元素6(ValDate)我得到2014-11-09而不是2014-11-10。这是我到目前为止编码的方式:

参数

Today <- Sys.Date()

LookBack <- as.Date(Sys.Date()-14, format = "%y-%m-%d")

源数据

Sql1 <- paste("SELECT DISTINCT Date",
              " FROM dbo.Example_Database",
              " WHERE Date BETWEEN  '",LookBack,"' AND '",Today,"'",
              " ORDER BY Date desc",sep="")
DateArray = data.frame(sqlQuery(dbConnection1,Sql1))

参考日期

TestDate <- as.Date(DateArray[1,1])

ValDate <- as.Date(DateArray[6,1])

1 个答案:

答案 0 :(得分:0)

问题是日期是在EST时间,并且R将它们转换为GMT,因此索引将提取正确的日期,转换意味着其值是在EST时间早1天。 您可以使用函数as.POSIXct检查时区,即

> as.POSIXct(DateArray[1,1])
[1] "2014-11-18 EST"

为避免转换为GMT时间,我使用了

> TestDate <- as.Date(DateArray[1,1], tz = "")

这将返回我要查找的日期,即数据框中显示的日期,而不是转换为GMT时间。