为指定的月份和年份设置数据框

Joh*_*ork 7 r date subset

我有一个数据框,其中第一列是d/m/y格式的日期,第二列是数值(销售).

我想为一年的每个月创建子集(例如,11/11,12/11等).我尝试了这个答案中建议的代码:使用多个条件对data.frame进行子集化

并且当月度条件施加时它起作用:

subset(sales, format.Date(date, "%m")=="11")
Run Code Online (Sandbox Code Playgroud)

但是invalid 'x' argument当我添加年份条件时,它返回一个带有错误消息的空子集:

subset(sales, format.Date(date, "%m")=="11" & format.Date(date, "%y")=="11")
Run Code Online (Sandbox Code Playgroud)

我在Ubuntu 10.04上使用R 2.10.1-2,感谢您提供的帮助.

Tyl*_*ker 5

由于您未提供数据集,因此我通过您提供的链接创建了自己的数据集。您的方法对我有用,并且仅当我不满足提供的两个条件(月和年)时,我才会获得空数据集,所以我猜您正在尝试对日期序列(月和年)进行子集化)不存在(但没有您使用的代码就无法确定)。这是我使用的代码:

sales <- read.table(text="2372  Kansas KS2000111 HUMBOLDT, CITY OF    ATRAZINE    1.3 05/07/2006
9104  Kansas KS2000111 HUMBOLDT, CITY OF    ATRAZINE   0.34 07/23/2006
9212  Kansas KS2000111 HUMBOLDT, CITY OF    ATRAZINE   0.33 02/11/2007
2094  Kansas KS2000111 HUMBOLDT, CITY OF    ATRAZINE    1.4 05/06/2007
16763 Kansas KS2000111 HUMBOLDT, CITY OF    ATRAZINE   0.61 05/11/2009
1076  Kansas KS2000111 HUMBOLDT, CITY OF METOLACHLOR   0.48 05/12/2002
1077  Kansas KS2000111 HUMBOLDT, CITY OF METOLACHLOR    0.3 05/07/2006")

sales$V9 <- as.Date(sales$V9, "%m/%d/%Y")
names(sales)[9] <- 'date'
subset(sales, format.Date(date, "%m")=="05" & format.Date(date, "%y")=="07")
#    V1     V2        V3        V4   V5 V6       V7  V8       date
#4 2094 Kansas KS2000111 HUMBOLDT, CITY OF ATRAZINE 1.4 2007-05-06

subset(sales, format.Date(date, "%m")=="05" & format.Date(date, "%y")=="10")
#[1] V1   V2   V3   V4   V5   V6   V7   V8   date
#<0 rows> (or 0-length row.names)
Run Code Online (Sandbox Code Playgroud)