我有一个包含一年时间数据的数据框。它还有其他数据,包括名称、金额和日期。我想将数据框架划分为年度季度,以衡量相应季度的某些方面。例如,我只想查看一月、二月和三月的收入。
我已确保日期列是一个时间序列:
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)
但我没有得到数据的子集框架。
建议?
似乎对我有用,不确定你做了什么:
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)