2014-09-18 115 views
0

好吧,所以我想分別爲6月,7月和8月的這些數據。我使用as.Date函數將日期轉換爲類「Date」。R - 如何按月對數據集進行子集劃分?

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

接下來,我嘗試在七月份選擇開始和結束日期子集的數據。

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」 

爲什麼?? !!!?我有我想要在課程日期的子集,所以我不知道爲什麼它不會工作!

+0

您可能會發現'lubridate'軟件包比基於R的日期更容易。 – 2014-09-18 17:24:46

+0

該軟件包中的哪些函數? – 2014-09-18 17:28:29

+1

我不知道'selectByDate'是如何工作的,但是你的'start'和'end'日期是格式化的,'%d /%m /%Y',而'Date'類日期格式爲'%Y-%m - %d' – Henrik 2014-09-18 17:31:17

回答

0

爲了簡單起見,儘量月保存爲一個新列和使用:

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

然後,您可以用這個循環:

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 }) 

等等。

+1

謝謝你,先生,你是老闆 – 2014-09-18 17:34:10

+0

@NickDriscoll:不用擔心。如果這很有用,您可以投票(答案左側的箭頭)或選擇此項作爲首選答案(在答案左側打勾)。這就是我得到我的溫暖和模糊。謝謝! – 2014-09-18 18:53:36

相關問題