我手头有个问题。
目标:我有一个由“零”和“NA”组成的月度时间序列数据集。这里零是值,我希望它们被更改,而 NA 是我希望在 R 中使用 StructTS 估算的缺失值。
数据集示例
dataset <- matrix(sample(c(NA, 1:5), 25, replace = TRUE), 5)
dataset[1,2]<-0
dataset[4,4] <- 0
在数据集中,我只想用一个值替换 NA 并让零仅为零。
在研究和阅读了几篇博客之后,我使用了以下方法:
missvalue <- function(df){
x<-df
x <- ts(rev(x),f=12)
fit <- ts(rowSums(tsSmooth(StructTS(x))[,-2]))
tsp(fit) <- tsp(x)
return(list(N=fit))
}
Newdata<-lapply(m,missvalue)
我还尝试了一种平均技术:
##Missing Value another treatment
nzmean <- function(x) {
if (all(x==0)) 0 else mean(x[x!=0])
}
apply(m,1,nzmean)
附上我提到的帖子:
对此的任何帮助都会非常棒。