lubridate有类似zoo的yearmon功能的功能吗?
Does lubridate have a function similar to the yearmon function of zoo?
我正在处理一个 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 类似的功能,可以输入年和月的组合。
Here are lubridate's functions 答案是否定的,因为 lubridate
是用来处理日期的,而日期有天。您可以假设日期是 01 并使用 ymd
转换为日期格式,或者只使用 zoo::yearmon
.
我们可以 filter
使用 year
、month
函数转换为 Date
class 和 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)
我正在处理一个 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 类似的功能,可以输入年和月的组合。
Here are lubridate's functions 答案是否定的,因为 lubridate
是用来处理日期的,而日期有天。您可以假设日期是 01 并使用 ymd
转换为日期格式,或者只使用 zoo::yearmon
.
我们可以 filter
使用 year
、month
函数转换为 Date
class 和 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)