给出dd / mm / yyyy的年份子集数据

时间:2016-05-12 16:29:41

标签: r date subset

我试图将我的数据按年分组,但我给出了每日积分,类似于我在下面给出的内容。

sell  Buy Country Date
0.00  25.00 AA 17/03/2005
9.09  45.45 AA 16/12/2004
9.09  45.45 AA 16/04/2009
18.18 27.27 AA 18/11/2004

我想要2004年的子集,应该得到

sell  Buy Country Date
18.18 27.27 AA 18/11/2004
9.09  45.45 AA 16/12/2004

是否有可以执行此操作的代码或函数?

干杯

2 个答案:

答案 0 :(得分:2)

我将始终确保日期字段采用日期格式。 然后,您可以使用Base R子装置来过滤行

假设df是你的data.frame

基地R:

df$Date <- as.Date(df$Date, '%d/%m/%Y')
df[format(df$Date, '%Y') == "2005", ]

<强> Dplyr:

library(dplyr)
filter(df, format(df$Date, '%Y') == "2005")

答案 1 :(得分:0)

以下是substrsubset

的一个选项
subset(df1, substr(Date, nchar(Date)-3, nchar(Date)) == 2004)
#   sell   Buy Country       Date
#2  9.09 45.45      AA 16/12/2004
#4 18.18 27.27      AA 18/11/2004

使用data.tablelubridate

的其他方法
library(lubridate)
library(data.table)
setDT(df1)[year(dmy(Date))==2004]
#    sell   Buy Country       Date
#1:  9.09 45.45      AA 16/12/2004
#2: 18.18 27.27      AA 18/11/2004