【发布时间】:2012-10-28 01:19:25
【问题描述】:
我在这里有点困惑,一定缺少一些非常基本的东西。 我想从多个时间序列对象中提取列。也许可以通过将 ts 对象放入数据框然后提取它们来完成,但是有一种直接的方法可以对时间序列进行子集化,如这个问题link
要弄清楚如何为 ts 对象分配名称,?ts 显示
ts(data = NA, start = 1, end = numeric(), frequency = 1,
deltat = 1, ts.eps = getOption("ts.eps"), class = , names = )
但是在 ?ts 帮助中运行代码时,有或没有 names 参数给出
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 的数据集,带有时间索引, 我不确定如何进行。 str(signal) 是一个 mts 对象,但打印信号显示没有时间索引。
非常感谢。
【问题讨论】:
-
关于为什么打印信号没有在数据旁边提供时间信息的任何想法,尽管它是一个 mts 对象?
-
确实如此,您认为打印对象上的
rownames是什么!?这是"ts"对象的标准行为。"ts" objectobj` 的tsp(obj)仅在数据不是年度、季度或月度时才会显式打印。在这三种特殊情况下,print.ts方法更喜欢更紧凑的布局,有些人认为它更有用。假设这就是您的意思,您始终可以从tsp(signal)获取时间信息。
标签: r time-series