Вы можете использовать rollmean
вместо zoo
пакета
library(zoo)
rollmean(test, 1)
#[1] 1 2 3 4 8 6 7 8 9 10
Просто из любопытства я изучал функцию SMA
, она вызывает функцию runMean
для внутреннего использования.Так что если вы сделаете
runMean(test, 1)
# [1] NA 2 3 4 5 6 7 8 9 10
, это все равно даст тот же результат.
Далее, runMean
звонит runSum
таким образом
runSum(x, n)/n
Так что если вы сейчас сделаете
runSum(test, 1)
#[1] NA 2 3 4 5 6 7 8 9 10
, то все равно NA
.Теперь runSum
- очень большая функция, из которой генерируется оригинал NA
.
Так что, если вам все еще придется упорствовать в использовании функции SMA
, вы можете добавить дополнительную проверку if
, говоря
if (Index_Transformation > 1) # OR (Index_Transformation != 1)
test <- SMA(test, n = Index_Transformation)
Таким образом, test
изменяется только в том случае, если Index_Transformation
больше 1 и остается таким же, как если бы оно было 1.