在 R 中创建季度子集

Che*_*075 1 r date

我有一个包含一年时间数据的数据框。它还有其他数据,包括名称、金额和日期。我想将数据框架划分为年度季度,以衡量相应季度的某些方面。例如,我只想查看一月、二月和三月的收入。

我已确保日期列是一个时间序列:

class(data_frame$launch_date)
>"Date"
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这段代码,以获取第一季度/几个月之前(包括三月份)的数据:

subset(data_frame, format.Date(launch_date, "%m") <= "03")
Run Code Online (Sandbox Code Playgroud)

但它没有给我一个新的数据框和这个响应:

<0 rows> (or 0-length row.names)
Run Code Online (Sandbox Code Playgroud)

我已经尝试过

data_frame_q1 <- data.frame(data_frame, data_frame$launched < as.Date("2013-03-31"))
Run Code Online (Sandbox Code Playgroud)

但我没有得到数据的子集框架。

建议?

the*_*ail 5

似乎对我有用,不确定你做了什么:

data_frame <- data.frame(
 id=1:5,
 launch_date=seq.Date(as.Date("2014-01-01"),as.Date("2014-05-01"),by="1 month")
)

#  id launch_date
#1  1  2014-01-01
#2  2  2014-02-01
#3  3  2014-03-01
#4  4  2014-04-01
#5  5  2014-05-01

class(data_frame$launch_date)
#[1] "Date"

subset(data_frame, format.Date(launch_date, "%m") <= "03")

#  id launch_date
#1  1  2014-01-01
#2  2  2014-02-01
#3  3  2014-03-01
Run Code Online (Sandbox Code Playgroud)

尽管使用实际数字可能更安全并执行以下操作:

subset(data_frame, as.numeric(format(launch_date, "%m")) <= 3)

#  id launch_date
#1  1  2014-01-01
#2  2  2014-02-01
#3  3  2014-03-01
Run Code Online (Sandbox Code Playgroud)