У меня проблема.Замените отсутствующие значения в наборе временных рядов с NA и Zero
Цель: У меня есть ежемесячный набор данных временных рядов, который содержит «нуль», а также «НС». Здесь Зеро ценность, и я хочу, чтобы они были изменены в то время как NA являются недостающими значения, что я ищу вменить с помощью StructTS в R.
Набор данных примера
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)
Прикрепленный являются сообщения о котором я говорила:
- R Convert NA's only after the first non-zero value
- Interpolate missing values in a time series with a seasonal cycle
Любая помощь по этому вопросу будет действительно замечательной.
U может заменить НС на что-то вроде этого 'dataset [is.na (dataset)] <- 250'. просто измените 250 со списком ваших значений, которые нужно заменить. – drmariod
Каков ваш ожидаемый результат 'dataset'? –
Я хочу, чтобы NA заменили либо средние из последних 5 чисел, либо любую другую технику отсутствующего значения. Ноль должен оставаться только на ноль. –