R语言如何提取double类型项对应的Y轴数值
R语言提取decompose趋势分量Y轴数值实现方案
你通过decompose()处理内置co2数据集得到的co2_trend属于时间序列(ts)类对象,typeof()返回double是该对象底层数值的存储类型,对象本身附带了时间索引、类属性等额外信息,要提取对应Y轴的纯趋势数值可按以下方式操作:
- 提取纯Y轴数值向量:直接用
as.numeric()去除时间序列类属性,得到的结果就是趋势分量对应的所有Y轴数值
co2_dec <- decompose(co2) co2_trend <- co2_dec$trend # 提取纯Y轴数值 trend_y <- as.numeric(co2_trend) # 查看提取结果前6项 head(trend_y)
如果需要剔除序列首尾因为移动平均窗口计算产生的NA值,可以加na.omit()处理:
trend_y_clean <- na.omit(as.numeric(co2_trend))
- 同步提取对应时间点与Y值:如果后续需要绘图、做关联分析,可以把时间索引和对应Y值一起转成结构化数据框
trend_data <- data.frame( time_point = as.numeric(time(co2_trend)), trend_y = as.numeric(co2_trend) ) # 查看结构化结果前6行 head(trend_data)
说明:
decompose()默认采用移动平均算法计算趋势项,序列首尾位置没有足够的观测值参与窗口计算,因此对应位置的趋势值会返回NA,属于正常计算结果。
内容的提问来源于stack exchange,提问作者Bufal
相关产品推荐
相关产品推荐

