为什么 as.Date 应用于 xts 索引会产生不同的结果?
Why does as.Date applied to an xts index produce a different result?
为什么过滤 xts 对象时 x 和 y(下图)会产生不同的结果? x 和 y 似乎都存储唯一日期,一个作为字符,另一个作为日期。 ob[x] returns 所有记录。 ob[y] returns 每个日期 1 条记录(仅当记录与午夜匹配时 00:00:00 )。
seq1<- seq(as.POSIXct("2015-09-01"),as.POSIXct("2015-09-14"), by = "30 mins")
ob<- xts(data.frame(closingPrice=1:(length(seq1))),seq1)
x = unique(format(index(ob), format = "%Y-%m-%d"))
y = as.Date(unique(format(index(ob), format = y = as.Date(unique(format(index(ob), format = "%Y-%m-%d"))))))
ob[x]
ob[y]
x
是字符向量,y
是日期向量。当您通过日期时间对象对 xts 对象进行子集化时,您只会得到完全匹配(在这种情况下,每天的午夜)。
当您按字符向量进行子集化时,您可以使用 xts 的基于 ISO-8601 的子集化(请参阅 ?"[.xts"
)。这种子集化的一个特点是你得到所有匹配到最低指定组件的观察结果
您指定了年、月和日,因此您将获得在该特定日期发生的所有指数观测值。再举一个例子:指定一个小时以内的所有内容,您将获得该小时的所有观察结果。
> ob[paste(x[1],"12")]
closingPrice
2015-09-01 12:00:00 25
2015-09-01 12:30:00 26
为什么过滤 xts 对象时 x 和 y(下图)会产生不同的结果? x 和 y 似乎都存储唯一日期,一个作为字符,另一个作为日期。 ob[x] returns 所有记录。 ob[y] returns 每个日期 1 条记录(仅当记录与午夜匹配时 00:00:00 )。
seq1<- seq(as.POSIXct("2015-09-01"),as.POSIXct("2015-09-14"), by = "30 mins")
ob<- xts(data.frame(closingPrice=1:(length(seq1))),seq1)
x = unique(format(index(ob), format = "%Y-%m-%d"))
y = as.Date(unique(format(index(ob), format = y = as.Date(unique(format(index(ob), format = "%Y-%m-%d"))))))
ob[x]
ob[y]
x
是字符向量,y
是日期向量。当您通过日期时间对象对 xts 对象进行子集化时,您只会得到完全匹配(在这种情况下,每天的午夜)。
当您按字符向量进行子集化时,您可以使用 xts 的基于 ISO-8601 的子集化(请参阅 ?"[.xts"
)。这种子集化的一个特点是你得到所有匹配到最低指定组件的观察结果
您指定了年、月和日,因此您将获得在该特定日期发生的所有指数观测值。再举一个例子:指定一个小时以内的所有内容,您将获得该小时的所有观察结果。
> ob[paste(x[1],"12")]
closingPrice
2015-09-01 12:00:00 25
2015-09-01 12:30:00 26