如何将新值附加到 xts 对象而不创建新值

发布于 2024-12-19 03:12:56 字数 293 浏览 1 评论 0原文

例如,我有一个 xts 对象

ts=xts(seq(10),seq(Sys.Date(),Sys.Date()+10,length.out=10))

,需要添加一个新点,例如

(Sys.Date()+11, 11)

我已经尝试过,

ts[Sys.Date()+11] <- 11

但它不起作用。我宁愿避免创建新的 xts 对象。有没有一种优雅的方法来做到这一点。

I have an xts object, for example

ts=xts(seq(10),seq(Sys.Date(),Sys.Date()+10,length.out=10))

and need to add a new point, for example

(Sys.Date()+11, 11)

I have tried

ts[Sys.Date()+11] <- 11

but it doesnt work. I would prefer to avoid creating a new xts object. Is there an elegant way to do this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

属性 2024-12-26 03:12:56

您可以在 xts 对象上使用 crbind 来按行追加:

c(ts, xts(11, Sys.Date()+11))

编辑:

请注意,这会产生警告类型不匹配:将对象转换为数字。要删除警告,首先将值强制为数字,例如:

c(ts, xts(as.integer(11), Sys.Date()+11))

           [,1]
2011-12-01    1
2011-12-02    2
2011-12-03    3
2011-12-04    4
2011-12-05    5
2011-12-06    6
2011-12-07    7
2011-12-08    8
2011-12-09    9
2011-12-11   10
2011-12-12   11

You can use c or rbind on an xts object to append row-wise:

c(ts, xts(11, Sys.Date()+11))

EDIT :

Note that this produces a warning mismatched types: converting objects to numeric. To remove the warning, first coerce the value to numeric, e.g:

c(ts, xts(as.integer(11), Sys.Date()+11))

           [,1]
2011-12-01    1
2011-12-02    2
2011-12-03    3
2011-12-04    4
2011-12-05    5
2011-12-06    6
2011-12-07    7
2011-12-08    8
2011-12-09    9
2011-12-11   10
2011-12-12   11
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文