gpt4 book ai didi

r - 内部 NA 时间序列、动物园、R

转载 作者:行者123 更新时间:2023-12-02 13:53:55 27 4
gpt4 key购买 nike

我在 R 中有一个动物园对象,它包含每日数据,但缺少周末数据。当我尝试在对象上运行某些函数(例如 ar() )时,我收到错误:

mkt.ar <- ar(zoo_object)
Error in na.fail.default(as.ts(x)) : missing values in object

如果我这样做:

mkt.ar <- ar(zoo_object, na.action=na.omit)
Error in na.omit.ts(as.ts(x)) : time series contains internal NAs

这是有道理的,因为当动物园试图将东西转换为 ts 时,周末本质上就消失了。除了使用 coredata(zoo_object) 将事物转换为向量并在其上运行 ar() 之外,还有其他方法告诉 R 跳过丢失的数据吗?

谢谢

最佳答案

据我所知,您的数据中包含每一天,包括工作日和周末,但不存在数据的日子是NA(而不是根本不存在)。以后请提供一些测试数据以便更清楚。

除了您的解决方案之外,如果您有足够的数据,您可以仅通过提取周五或之前的最后一个非缺失值来对每周数据执行ar:

library(zoo)

# test data
library(chron) # is.weekend
z <- zoo(100:130, as.Date("2000-01-01") + 0:30)
z[is.weekend(time(z))] <- NA

# extract Fridays
zfri <- na.locf(z)[format(time(z), "%w") == 5]

(如果没有缺少星期五,可以通过将 na.locf(z) 替换为 z 来缩短时间。)

另一种可能性是使用 1, 2, ... 表示时间,但给它们命名,在这种情况下,您总是可以通过检查时间名称来找出某个点所属的日期.

z1 <- na.omit(z)
time(z1) <- setNames(seq_along(z1), time(z1))

关于r - 内部 NA 时间序列、动物园、R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9695636/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com