r - 设置 xts 索引

标签 r xts

构建一个包含两行的 xts 对象。

library(xts)   
junk<-xts(c(1,2),as.Date(c("2010-01-01","2010-05-01")))   
junk   
>            [,1]
> 2010-01-01    1   
> 2010-05-01    2   

为什么以下不更改第一行的索引?
time(junk[1])<-as.Date("2010-02-01")   
junk   
>            [,1]
> 2010-01-01    1   
> 2010-05-01    2   

我意识到以下有效,但为什么以上无效?
time(junk)[1]<-as.Date("2010-02-01")   
junk   
>            [,1]
> 2010-02-01    1   
> 2010-05-01    2   

谢谢,
账单

最佳答案

直接回复帖子是魔法在attr<-里面正如乔希所说。首先对对象进行子集化只是创建一个新对象,该对象在 time<- 完成后立即被处理。

此外,您可以通过 .index() 查看索引的“内部”。功能。本质上是一个映射到 POSIXct 时间的 double 或 integer 类型的向量 - 附加了一些属性。您分配的类(class)会自动来回强制。这使得内部更容易维护 - 并让您可以在任何时间类之外做任何事情。

一般来说,Date 将是避免 TZ 和 secs 麻烦的最干净的方法,但请记住,这个隐藏方面的成本是函数 index() .这将不得不重新创建您期望的对象。

关于r - 设置 xts 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4435011/

相关文章:

r - 为什么我不能直接绘制 xts 的箱线图?

r - 如何使用plot.xts在蜡烛图中设置蜡烛的宽度?

r - na.locf 但不要做尾随 NA

r - 在 Windows 机器上安装包 xtsExtra

r - 当使用带有多个变量的pivot_longer时,我丢失了常量变量(包括id)

r - 如何在R中的错误消息中格式化输出

r - 如何在 pandoc 的 Markdown (例如 Rmd)文档中翻译 `abstract` 的标题?

r - 调整pandoc.table列宽

r - 连接断开时如何在PowerShell中对R脚本自动重试

r - xts - 如何在一周中的每一天进行子集化