首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新XTS对象

更新XTS对象
EN

Stack Overflow用户
提问于 2013-01-31 05:18:04
回答 1查看 447关注 0票数 4

我一直在努力做一些在R上可能非常简单的事情。我正在尝试做的是使用另一个XTS对象来更新一个XTS对象列。

假设我有一个名为Object1的XTS对象:

代码语言:javascript
复制
A B
2000-01-03 , 14, NA
2000-01-04 , NA, NA
2000-01-05 , 16, 100
2000-01-06 , NA, 200

以及以下名为Object2的XTS对象:

代码语言:javascript
复制
A
2000-01-05 , 160
2000-01-06 , 20

我正在寻找一种使用Object2中的值更新Object1的方法,结果如下:

代码语言:javascript
复制
A B
2000-01-03 , 14, NA
2000-01-04 , NA, NA
2000-01-05 , 160, 100
2000-01-06 , 20, 200

如果我合并(Object1,Object2),我将拥有:

代码语言:javascript
复制
A B A.1
2000-01-03 , 14, NA, NA
2000-01-04 , NA, NA, NA
2000-01-05 , 16, 100, 160
2000-01-06 , NA, 200, 20

这绝对不是我要找的,因为我正在尝试根据Object2$A更新Object1$A。

这里我漏掉了什么?

以下是dput(Object1)dput(Object2)的输出,以使其可重现:

代码语言:javascript
复制
> dput(Object1)
structure(c(14, NA, 16, NA, NA, NA, 100, 200), .Dim = c(4L, 2L
), index = structure(c(946857600, 946944000, 947030400, 947116800
), tzone = "UTC", tclass = "Date"), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", .Dimnames = list(
    NULL, c("A", "B")), class = c("xts", "zoo"))

> dput(Object2)
structure(c(160, 20), .Dim = c(2L, 1L), index = structure(c(947030400, 
947116800), tzone = "UTC", tclass = "Date"), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", .Dimnames = list(
    NULL, "A"), class = c("xts", "zoo"))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-31 05:52:16

您可以使用Object2的索引来子集Object1

代码语言:javascript
复制
> Object1[index(Object2), "A"] <- Object2$A
> Object1
             A   B
2000-01-03  14  NA
2000-01-04  NA  NA
2000-01-05 160 100
2000-01-06  20 200
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14613981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档