【发布时间】:2016-01-12 03:50:20
【问题描述】:
我有一个 xts 列表对象,我试图将列表中存在的日期放入一个向量中,以便稍后在进一步处理中用作 xts 索引。尽管我的数据包含时间戳,但出于此说明的目的,我从谷歌提取了 YHOO 数据。此数据没有仅时间戳日期的时间元素,但已经足够了。你需要quantmod。我拉取数据,然后使用以下代码创建一个列表,将 YHOO 划分为每周的子组件:
library(quantmod)
library(xts)
getSymbols("YHOO",src="google")
yhooL <- split.xts(YHOO,"weeks")
要从第一段 yhooL 中获取日期,我通过以下代码:
strptime(index(yhooL[[1]][1]),format="%Y-%m-%d")
它按预期工作,我得到了我的约会。但是要使用vapply strptime() 从每周的第一行获取所有日期,将返回其所有 11 个元素 $sec、$min...days、一年中的一周。它没有以我提供的格式给我日期。我想要实现的是以该特定格式从第一行返回日期。我不确定将什么值传递给vapply() 的参数 FUN.VALUE
vapply(yhooL, function(i) {strptime(index(i[1,]), format ="%Y-%m-%d")},double(1))
我还尝试了POSIXct(1) 和FUN.VALUE 和其他一堆,真的是没有运气的猜测。
【问题讨论】:
-
你可以试试 as.Date() 吗?
-
为了 FUN.VALUE?如果这就是你的意思,因为错误正在发生,因为 strptime() 正在返回 11 个元素,而函数期望 1。那是 11 per (i) 而不是 1 per (i)。
-
strptime将字符串转换为 POSIXlt 对象。index返回一个基于时间的对象。所以,不清楚你为什么需要strptime。 -
我正在尝试从时间戳中获取日期组件。我的索引由日期和时间组成,我试图只获取日期。或每个日期的第一秒(午夜)。
-
当我加载上述数据时,索引只是一个日期字段,属于日期类。您是否有其他运行方式会产生时间戳?