3

財務データが少しあるので、毎週月曜日以外の最初の曜日だけを選択してフィルタリングしたいと思います。通常は火曜日ですが、火曜日が祝日の場合は水曜日になることもあります。

これがほとんどの場合に機能する私のコードです

XLF <- quantmod::getSymbols("XLF", from = "2000-01-01", auto.assign = FALSE)

library(tibble)
library(lubridate)
library(dplyr)
xlf <- as_tibble(XLF) %>% rownames_to_column(var = "date") %>% 
         select(date, XLF.Adjusted)  
xlf$date <- ymd(xlf$date)

# We create Month, Week number and Days of the week columns
# Then we remove all the Mondays
xlf <- xlf %>% mutate(Year = year(date), Month = month(date), 
                      IsoWeek = isoweek(date), WDay = wday(date)) %>% 
               filter(WDay != 2)

# Creating another tibble just for ease of comparison
xlf2 <- xlf %>% 
          group_by(Year, IsoWeek) %>% 
          filter(row_number() == 1) %>% 
          ungroup()

とはいえ、これまで解決できなかった問題がいくつかあります。

たとえば、火曜日である「2002-12-31」は、2003 年の最初の ISO 週の一部と見なされるため、スキップされます。同様の問題がいくつかあります。
私の質問は、tidyverse にとどまりながら (つまり、xts/zoo クラスを使用する必要がない)、そのような問題なしに毎週月曜日以外の最初の曜日を選択するにはどうすればよいかということです。

4

1 に答える 1