Rcpp如何向xts对象添加列(或行)?

Rcpp如何向xts对象添加列(或行)?,r,time-series,rcpp,xts,R,Time Series,Rcpp,Xts,给定以下起始R代码: x <- structure( c(10L, 10L, 11L, 12L, 10L, 10L, 10L, 11L, 11L, 12L, 13L, 11L, 11L, 11L), .Dim = c(7L, 2L), .Dimnames = list(NULL, c("Bid", "Ask")), index = structure(1:7, tzone = "", tclass = c("POSIXct", "POSIXt")), .indexCLASS

给定以下起始R代码:

x <- structure(
  c(10L, 10L, 11L, 12L, 10L, 10L, 10L, 11L, 11L, 12L, 13L, 11L, 11L, 11L),
  .Dim = c(7L, 2L), .Dimnames = list(NULL, c("Bid", "Ask")),
  index = structure(1:7, tzone = "", tclass = c("POSIXct", "POSIXt")),
  .indexCLASS = c("POSIXct", "POSIXt"), .indexTZ = "",
  tclass = c("POSIXct", "POSIXt"), tzone = "", class = c("xts", "zoo"))
a <- 0
a[1:nrow(x)]<-0
b = cbind(x,a)
                    Bid Ask ..2
1969-12-31 18:00:01  10  11   0
1969-12-31 18:00:02  10  11   0
1969-12-31 18:00:03  11  12   0
1969-12-31 18:00:04  12  13   0
1969-12-31 18:00:05  10  11   0
1969-12-31 18:00:06  10  11   0
1969-12-31 18:00:07  10  11   0
同样的结果,但没有任何东西使它成为xts对象


我如何做基本操作,比如在保持XTS对象的时候添加列或行?

查看RCPP库,关于如何从C++创建XTS,然后推断如何在更改矩阵并重新附加属性之前恢复属性。谢谢,我想你指的是这是唯一的方式,因为它看起来效率低。此外,xts还存储结果对象的维度和列名。如果我从我的X矩阵复制属性,我需要更改这些值吗?
// [[Rcpp::export]]
Rcpp::NumericMatrix AddColumn(const Rcpp::NumericMatrix& X)
{
  int vector_size = PriceMatrix.nrow();
  NumericMatrix aa(vector_size,1);
  NumericMatrix res = cbind(X,aa);
  return wrap(res);
}
    [,1] [,2] [,3]
[1,]   10   11    0
[2,]   10   11    0
[3,]   11   12    0
[4,]   12   13    0
[5,]   10   11    0
[6,]   10   11    0
[7,]   10   11    0