我在这里有点困惑,一定缺少一些非常基本的东西。我想从多个时间序列对象中提取列。也许可以通过将 ts 对象放入数据框然后提取它们来完成,但是有一种直接的方法可以对时间序列进行子集化,如本问题链接中所给出
要弄清楚如何为 ts 对象分配名称, ?ts 显示
ts(data = NA, start = 1, end = numeric(), frequency = 1,
deltat = 1, ts.eps = getOption("ts.eps"), class = , names = )
但是在 ?ts 帮助中运行代码时,无论有无名称参数,都会给出
names(z)
NULL。
z <- ts(matrix(rnorm(300), 100, 3), start=c(1961, 1), frequency=12)
或者z <- ts(matrix(rnorm(300), 100, 3), start=c(1961, 1), frequency=12, names=c("x1", "x2", "x3"))
主要问题:1.如何为时间序列对象 ts 和 mts 中的列分配名称?2. 随时间索引直接从时间序列对象中提取列的方法有哪些?是否有必要将其转换为 zoo 或 xts 类?还是单独添加时间索引?
为了给出我正在尝试解决的问题的想法:
# using inbuilt ldeaths time series dataset
ldeaths
d <- diff(ldeaths)
percen <- quantile(d, 0.9)
i <- ifelse(d>percen, 1,0)
signal <- cbind(d,i)
现在要提取指标为 1 的数据集,使用 time index,我不知道如何继续。str(signal) 是一个 mts 对象,但打印信号显示没有时间索引。
非常感谢。