我已经从数据帧创建了一个'xts‘对象--数据帧是从'csv’文件中加载的。
“xts”对象看起来是这样的:-
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其中共有1462条记录-从2016年1月1日至2017年12月31日至2017年12月31日,每个实体编号1和2各有731条,每隔一天。
Entitycode 1&2指不同的区域,如'region1‘和’and 2‘。
有没有办法为实体代码1&2(或'region1‘和'region2')创建单独的'xts’对象(变量),每个实体代码都有731行,名称为“region1_xts”和“Regi1_xts”?
诚挚的问候
迪帕克
发布于 2019-02-18 05:12:45
我建议使用split处理xts对象,从而生成xts对象的list
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)https://stackoverflow.com/questions/54740489
复制相似问题