r - 子集指定月份和年份的数据框

标签 r date subset

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

我想为一年中的每个月创建子集(例如 11/11、12/11 等)。我尝试了这个答案中建议的代码:subset a data.frame with multiple conditions

当月份的条件被施加时它起作用:

subset(sales, format.Date(date, "%m")=="11")

但它返回一个带有错误消息 invalid 'x' argument 的空子集当我添加年份条件时:
subset(sales, format.Date(date, "%m")=="11" & format.Date(date, "%y")=="11")

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

最佳答案

由于您没有提供数据集,因此我根据您提供的链接制作了自己的数据集。你的方法对我有用,只有当我不满足提供的两个条件(月份和年份)时,我才会得到一个空数据集,所以我猜你是在尝试对日期系列(月份和年份)进行子集) 不存在(但如果没有您正在使用的代码就无法确定)。这是我使用的代码:

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)

关于r - 子集指定月份和年份的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9407622/

相关文章:

Pythonsolve_ivp 与 R lsoda

r - 在单个 R 函数中将 '. . .' 用于两个目的

r - 更改环境后功能不起作用

javascript - 从给定的日期字符串中获取年份

javascript - 带有 JavaScript 日期对象的下拉菜单?

r - 根据名称选择变量(简单的正则表达式)

r - 以固定的时间间隔更新图形/绘图

swift - 使用 Calendar.date 时时区错误

r - R 中的 bool 运算符和 which() 函数

删除特定列中行内的重复元素