当前位置:  开发笔记 > 编程语言 > 正文

如何在xts中进行单列操作

如何解决《如何在xts中进行单列操作》经验,为你挑选了1个好方法。



1> mrp..:

Pascal是正确的,你会这样做就像你在data.frame上操作一样.这是一个例子:

library(xts)

Ex <- xts(1:10, Sys.Date()+1:10)
names(Ex) <- "a"
Ex$b <- (Ex$a*lag(Ex$a))+Ex$a
Ex$c <- lag(Ex$b)

以上产生以下内容:

##             a   b  c
## 2015-12-25  1  NA NA
## 2015-12-26  2   4 NA
## 2015-12-27  3   9  4
## 2015-12-28  4  16  9
## 2015-12-29  5  25 16
## 2015-12-30  6  36 25
## 2015-12-31  7  49 36
## 2016-01-01  8  64 49
## 2016-01-02  9  81 64
## 2016-01-03 10 100 81
编辑:回答编辑的问题

要创建一个d1 = a3的列,只需将函数中的对象更改为矩阵即可正常工作.也许有人可以填补空白为什么,但至少它现在有效.

shift <- function(x, n){
  xMat <- as.matrix(x)
  c(xMat[-(seq(n))], rep(NA, n))
}

Ex$d <- shift(Ex$a, 2)

这会产生:

##             a   b  c  d
## 2015-12-26  1  NA NA  3
## 2015-12-27  2   4 NA  4
## 2015-12-28  3   9  4  5
## 2015-12-29  4  16  9  6
## 2015-12-30  5  25 16  7
## 2015-12-31  6  36 25  8
## 2016-01-01  7  49 36  9
## 2016-01-02  8  64 49 10
## 2016-01-03  9  81 64 NA
## 2016-01-04 10 100 81 NA

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有