Представьте себе данные:
>dput(mydata)
structure(c(9.3424, 9.3424, 9.3983, 9.5102, 9.3144, 9.4822, NA,
NA, NA, NA, NA, NA, 7.8478, 8.1167, 7.6421, 7.4048, 5.3479, 5.3004,
NA, NA, NA, NA, NA, NA, 13.4319, 13.6184, 13.805, 13.8983, 13.8983,
13.805), .Dim = c(6L, 5L), .Dimnames = list(NULL, c("1", "2",
"3", "4", "5")))
То, что я пытаюсь сделать, это применить алгоритм в скользящем окне, алгоритм выполняет методологию выборки, а затем создает некоторые сводные статистические данные для каждого столбца в отдельности.,Столбцы никак не взаимодействуют друг с другом.Проблема в том, что в данных есть НС.Я хочу, чтобы, когда скользящее окно было полно NA, я хочу, чтобы скользящее окно пропустило этот столбец и в сводной статистике поместило значение NA.
ПРИМЕР:
mydata<-sp.val[,c(1:5)]
summarrry<-matrix(0,nrow=5,ncol=2)
roller<-5
for (u in 1:roller){
for (j in 1:5){ #50 is the assets consider using 498
testdata<-mydata[(u:(u+365)),]
lin<-lm(testdata[,1]~testdata[,j],data=as.data.frame(testdata))
summarrry[j,]<-coef(lin)
print(summarrry)
}
}
Возвращает ошибку:
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
0 (non-NA) cases
из-за столбцов NA.
Таким образом, я хочу пропуститьстолбцы скользящего окна, которые: либо заполнены NA (length(which.na(data))==window
), либо имеют одно числовое значение (length(which.na(data))==(window-1)
).
Желаемый результат: выполнение вышеуказанного возвращает следующее: столбец 1 - это перехвати 2 - это коэффициент.
[,1] [,2]
[1,] 2.971253e-15 1
[2,] 0.000000e+00 0
[3,] 0.000000e+00 0
[4,] 0.000000e+00 0
[5,] 0.000000e+00 0
, и он останавливается из-за ошибки, упомянутой из-за NA.Что я хочу, чтобы произошло:
[,1] [,2]
[1,] 2.971253e-15 1
[2,] NA NA
[3,] 2.455878 1.841197
[4,] NA NA
[5,] 2.5868 0.5759558