2016-10-17 7 views
1

есть очень удобная функция в pandas, что позволяет вам создать индекс с будними днями freq=BDay(), чтобы вы могли заполнить отсутствующие данные с помощью NA. Кто-нибудь знает о такой функциональности в xts? Я знаю, что вы можете сделать что-то вродеИндекс с рабочими днями в xts

new_index <- sql(date1, date2, by = "1 day") 
new_index <- new_index[!weekday(new_index) %in% c("Saturday", "Sunday")] 
my_xts <- xts(data, index = new_index) 

Но может быть, есть встроенный xts функциональности, чтобы сделать это.

+0

Посмотрите на функцию 'timeDate'' isBizday'. он должен делать то, о чем вы просите. – user3293236

+0

Эта функция использует использование isWeekday, которая использует форму wday as.POSIX. Все в порядке, просто интересно, есть ли какая-либо функциональность в xts. – kismsu

ответ

1

Посмотрите, ?.index. Здесь вы найдете следующие методы извлечения:

.indexday(x) 
.indexmday(x) 
.indexwday(x) 
.indexweek(x) 
.indexmon(x) 
.indexyday(x) 
.indexyear(x) 
.indexhour(x) 
.indexmin(x) 
.indexsec(x) 

ie. в вашем случае, мы могли бы использовать .indexwday(x) (который возвращает целое число 0:6) и попробовать что-то вроде

library(xts) 
my_xts <- xts(rnorm(100), seq(as.Date("2016-10-01"), length.out = 100, by = 1)) 
new_index <- index(my_xts) 
my_xts[! .indexwday(my_xts) %in% 1:5] <- NA 

для того, чтобы заполнить ряд с NA для воскресенья (0) и субботу (6).