我有以下数据框:
id day total_amount
1 2016-06-09 1000
1 2016-06-23 100
1 2016-06-24 200
1 2015-11-27 2392
1 2015-12-16 123
7 2015-07-09 200
7 2015-07-09 1000
7 2015-08-27 100018
7 2015-11-25 1000
如何使用基本R软件包和其他软件包(如dplyr)丢弃日期列早于三周的行。
答案 0 :(得分:3)
我们可以使用subset
subset(df1, as.Date(day) > Sys.Date()-21)
答案 1 :(得分:2)
只是填补两个额外的可能性(在语法方面几乎相同,与@ akrun使用subset
非常相似)。
您可以按如下方式使用with
来缩短字符数:
with(df, df[as.Date(day) > Sys.Date()-21,])
正如您所提到的,希望看到其他软件包,这是使用data.table
软件包丢弃旧观察结果的一种方法。
library(data.table)
# turn df into a data.table
setDT(df)
df[as.Date(day) > Sys.Date()-21,]
数据强>
df <- read.table(header=T, text="id day total_amount
1 2016-06-09 1000
1 2016-06-23 100
1 2016-06-24 200
1 2015-11-27 2392
1 2015-12-16 123
7 2015-07-09 200
7 2015-07-09 1000
7 2015-08-27 100018
7 2015-11-25 1000")