lubridate是否具有类似于动物园的常年功能的功能?

时间:2017-04-21 03:42:34

标签: r lubridate

我正在处理一个带有月份变量的data.frame,该月份变量只有年份和月份组件。部分数据如下:

     month         DIV  MKTP
1  1941-12 0.005752218 -4.87
2  1942-01 0.005767111  0.79
3  1942-02 0.005781771 -2.46
4  1942-03 0.005859665 -6.58
5  1942-04 0.005906924 -4.37
6  1942-05 0.005890041  5.94
7  1942-06 0.005941640  2.69
8  1942-07 0.005962464  3.51
9  1942-08 0.005936732  1.80
10 1942-09 0.006007593  2.61

我想将month变量转换为yearmon格式以进行子目的。我的代码如下:

require(zoo,dplyr)
  df %>%
  mutate(month = as.yearmon(month)) %>%
  filter(month >= as.yearmon("1942-3") & month <= as.yearmon("1942-8"))

我想知道lubridate包是否具有与yearmon类似的功能,可以输入年和月的组合。

2 个答案:

答案 0 :(得分:6)

Here are lubridate's functions答案是否定的,因为lubridate用于处理日期,而日期有几天。您可以假设当天为01并使用ymd转换为日期格式,或者只使用zoo::yearmon

答案 1 :(得分:2)

我们可以filter使用yearmonth功能转换为Date课程后ymd

library(tidyverse) 
df %>% 
   mutate(date = ymd(paste0(month, "-01"))) %>% 
   filter(year(date)>= 1942, month(date)>3, month(date)<=8, year(date) < 1943) %>%
   select(-date)