R - 如何按月对数据帧进行子集化?

时间:2014-09-18 17:23:12

标签: r date subset

好的,所以我试图分别在6月,7月和8月分配这些数据。我使用as.Date函数将日期转换为“Date”类。

BG.data$Date <- as.Date(BG.data$TIMESTAMP, format = "%d/%m/%Y")

接下来,我尝试通过选择7月份的开始和结束日期来对数据进行分组。

July <- selectByDate(BG.data$Date, start = "1/7/2014", end = "31/7/2014")

我不断收到此错误消息。

 Error in as.Date.default(date) : 
 do not know how to convert 'date' to class “Date”

为什么?? !!!?我正在尝试在类Date中进行子集,所以我不知道它为什么不起作用!

1 个答案:

答案 0 :(得分:1)

为简单起见,请尝试将月份保存为新列并使用:

BG.data$month <- factor(format(data.new$timestamp, "%B"),
                       levels = month.name)

然后你可以在for循环中使用它:

for (month in unique(BG.data$month)){
# get the subset
BG.subset <- BG.data[,BG.data$month == month]
# now do something with that subset
}

您也可以聚合使用它:

aggregate(something ~ month,
          data = BG.data,
          FUN = function(x){ # custom function })

等等。