Я понимаю, что каждый день представлен в ваших данных, включая будние и выходные дни, но дни, для которых нет данных, равны 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))