如何从一个xts对象创建多个xts对象

时间:2019-02-18 04:27:37

标签: r

我已经从数据框创建了一个'xts'对象-该数据框是从'csv'文件加载的。

'xts'对象看起来像这样:-

<coupon>

其中共有1462条记录-从2016年1月1日至2017年12月31日,每个实体代码1和2分别有731条记录,

实体代码1和2分别指不同的区域,例如“ region1”和“ region2”。

是否可以为实体代码1和2(或“ region1”和“ region2”)创建单独的“ xts”对象(变量),每个实体代码有731行,名称类似于“ region1_xts”和“ region1_xts”?

最诚挚的问候

Deepak

1 个答案:

答案 0 :(得分:0)

我建议split修饰xts对象,从而产生list个对象中的xts

split(xts, xts$entitycode)
#$`1`
#           entitycode usage
#2016-01-01          1 16521
#2016-01-02          1 16540
#2016-01-03          1 16269
#
#$`2`
#           entitycode usage
#2016-01-01          2  6589
#2016-01-02          2  6687
#2016-01-03          2  6642

然后,您可以使用*apply系列的功能来轻松地对不同的list元素(即xts对象)进行操作。


样本数据

df <- read.csv(text =
    "      date,entitycode,usage
2016-01-01,  1,16521
2016-01-01,  2,6589
2016-01-02,  1,16540
2016-01-02,  2,6687
2016-01-03,  1,16269
2016-01-03,  2,6642", header = T)

mat <- as.matrix(df[, -1])
rownames(mat) <- df[, 1]
colnames(mat) <- colnames(df)[-1]

xts <- as.xts(mat)