我怎么知道星期几

时间:2019-05-06 15:57:30

标签: r

我遇到了以下问题:我将某个份额的每日股票汇率存储在具有归属日期(从2015年到2017年)的向量中。

我需要提取每周的最新汇率。

这意味着我需要知道每个日期对应的星期几,并将这些费率存储在向量中(或从现有向量中删除其他行)。我通过使用“ wday”(来自lubridate)做到了这一点,然后执行了以下操作:

 vector<-stochexchangerate
 weekdays<-wday(stockexchangerate)   ## length =35; monday=2,   
 tuesday=3,..

  for(i in 1:10){
       if(weekdays[i]<6){
           vector<-vector[-c(i)]
              }
          }

但这只是一个结果,就是删除了一些“随机”行,如果我运行该代码6次,尽管星期五有一些值,但只剩下1行。谁能帮我吗?

1 个答案:

答案 0 :(得分:0)

是的,使用lubridate是一个很好的见解。我将使用lubridate::wday和参数label = TRUE提取星期几并过滤该列。

假设您有一个包含2列的数据框(一列用于日期,一列用于费率值),则可以执行以下操作:

library(tidyverse)
library(lubridate)

# DATA
#> df <-  tibble(date = mdy("02/15/1980") + 1:300,
#>               value = 1:300)

df %>% 
  mutate(day = wday(date, label = TRUE)) %>% 
  filter(day == "Fri")

#> # A tibble: 42 x 3
#>    date       value day  
#>    <date>     <int> <ord>
#>  1 1980-02-22     7 Fri  
#>  2 1980-02-29    14 Fri  
#>  3 1980-03-07    21 Fri  
#>  4 1980-03-14    28 Fri  
#>  5 1980-03-21    35 Fri  
#>  6 1980-03-28    42 Fri  
#>  7 1980-04-04    49 Fri  
#>  8 1980-04-11    56 Fri  
#>  9 1980-04-18    63 Fri  
#> 10 1980-04-25    70 Fri  
#> # … with 32 more rows