假设我有以下两个XTS ...
a <- c(1,2,3,4)
b <- c(2,4,6,8)
x <- xts(cbind(a,b),order.by = as.Date(c("2015-01-02","2015-01-05","2015-01-06","2015-01-07")))
x
和
c <- c("a","b","b","a","a","b")
d <- c(10,20,10,30,20,40)
y <- xts(cbind(c,d),order.by = as.Date(c("2015-01-02","2015-01-02","2015-01-05","2015-01-06","2015-01-07","2015-01-07")))
y
这些给我...
a b
2015-01-02 1 2
2015-01-05 2 4
2015-01-06 3 6
2015-01-07 4 8
和
c d
2015-01-02 "a" "10"
2015-01-02 "b" "20"
2015-01-05 "b" "10"
2015-01-06 "a" "30"
2015-01-07 "a" "20"
2015-01-07 "b" "40"
我想获得以下XTS ...
a b
2015-01-02 10 20
2015-01-05 NA 10
2015-01-06 30 NA
2015-01-07 20 40
我尝试了几种不同的方法,例如使用功能match和coredata,但无法获得确切的答案。我认为也许从第一个具有空白值的XTS开始,然后用第二个XTS的值填充它会最好。不确定如何执行此操作。
问题是xts
对象也是matrix
is.matrix(x)
#[1] TRUE
根据?matrix
as.matrix是泛型函数。如果只有原子列和任何非(数字/逻辑/复杂)列,则数据帧方法将返回一个字符矩阵,将as.vector应用于因子,将格式应用于其他非字符列。否则,将使用通常的强制等级(逻辑
和matrix
只能容纳一个类。如果只有一个character
元素,它将把整个数据集更改为character
类