我试图将我的数据按年分组,但我给出了每日积分,类似于我在下面给出的内容。
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
是否有可以执行此操作的代码或函数?
干杯
答案 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)
以下是substr
和subset
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.table
和lubridate
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