Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 筛选特定月份的日期列_R_Date_Filter - Fatal编程技术网

R 筛选特定月份的日期列

R 筛选特定月份的日期列,r,date,filter,R,Date,Filter,我想把一个月的时间序列变成一个季度的时间序列,只保留一年中的4个值。我在数据框中有一个日期列,它是这种月度格式的整数: 192707 192708 192709 .... 我已将其转换为日期格式: library(zoo) df$date<-as.Date(as.yearmon(as.character(df$date), format = '%Y%m'), frac=1) 图书馆(动物园) df$date是的,你们非常接近。使用months函数给出日期月份的全名,然后使用month.

我想把一个月的时间序列变成一个季度的时间序列,只保留一年中的4个值。我在数据框中有一个日期列,它是这种月度格式的整数:

192707
192708
192709
....
我已将其转换为日期格式:

library(zoo)
df$date<-as.Date(as.yearmon(as.character(df$date), format = '%Y%m'), frac=1)
图书馆(动物园)

df$date是的,你们非常接近。使用
months
函数给出日期月份的全名,然后使用
month.name
我们可以得到您想要的4个月:

df <- df[months(df$date) %in% month.name[c(1,4,7,10)], ]

df是的,你非常接近。使用
months
函数给出日期月份的全名,然后使用
month.name
我们可以得到您想要的4个月:

df <- df[months(df$date) %in% month.name[c(1,4,7,10)], ]

df另一个选项可以使用
月数,即1、4、7、10
如下:

df[month(df$date) %% 3 == 1,]
在这种情况下,可以避免在名称上进行比较。因此,它应该是快速的


注意:我必须在这里提到OP使用了
zoo
软件包

另一个选项可以使用
月数,即1、4、7、10
如下:

df[month(df$date) %% 3 == 1,]
在这种情况下,可以避免在名称上进行比较。因此,它应该是快速的


注意:我必须在这里提到OP使用了
zoo
软件包

我建议使用一个软件包。具体来说,请参见软件包。您可以从yearmon变量
ym
获取月份,而无需使用
cycle(ym)
将其转换为日期。感谢您的建议,tibbletime非常棒。自行车(ym)也很不错!!我建议使用一个软件包。具体来说,请参见软件包。您可以从yearmon变量
ym
获取月份,而无需使用
cycle(ym)
将其转换为日期。感谢您的建议,tibbletime非常棒。自行车(ym)也很不错!!还有,非常好!!!这对我正在尝试做的其他一些事情来说是非常有用的,谢谢!!!还有,非常好!!!这对我正在尝试做的其他一些事情来说是非常有用的,谢谢!!!