這組日期是數據的樣本,我目前的工作:通過bimester
x <- structure(list(sec = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
min = c(59L, 32L, 23L, 26L, 20L, 14L, 1L, 5L, 32L, 2L),
hour = c(10L, 15L, 12L, 12L, 16L, 18L, 18L, 9L, 14L, 12L),
mday = c(9L, 15L, 2L, 15L, 20L, 26L, 11L, 22L, 9L, 16L),
mon = c(4L, 11L, 10L, 7L, 9L, 8L, 10L, 8L, 8L, 4L),
year = c(111L, 111L, 111L, 111L, 111L, 111L, 111L, 111L, 111L, 111L),
wday = c(1L, 4L, 3L, 1L, 4L, 1L, 5L, 4L, 5L, 1L),
yday = c(128L, 348L, 305L, 226L, 292L, 268L, 314L, 264L, 251L, 135L),
isdst = c(0L, 1L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 0L)),
.Names = c("sec", "min", "hour", "mday", "mon", "year",
"wday", "yday", "isdst"),
class = c("POSIXlt", "POSIXt"))
這樣
> x
[1] "2011-05-09 10:59:00" "2011-12-15 15:32:00" "2011-11-02 12:23:00"
[4] "2011-08-15 12:26:00" "2011-10-20 16:20:00" "2011-09-26 18:14:00"
[7] "2011-11-11 18:01:00" "2011-09-22 09:05:00" "2011-09-09 14:32:00"
[10] "2011-05-16 12:02:00"
說我要按月製表的x
分佈。這是我如何完成它:
> table(strftime(x, '%m'))
05 08 09 10 11 12
2 1 3 1 2 1
現在我想做一個類似的列表,但這次我想組由bimester的數據(也可能是三個月或學期以後)。我看了一下help page for strptime
,但找不到合適的分隔符。
這是我想出了迄今爲止最好的:
> table(cut(x = as.numeric(strftime(x, '%m')),
breaks = c(1, 3, 5, 7, 9, 11, 13),
labels = c('1-2', '3-4', '5-6', '7-8', '9-10', '11-12'),
right = FALSE))
1-2 3-4 5-6 7-8 9-10 11-12
0 0 2 1 4 3
正是達到這一的一個令人費解的方式,但它是一個簡單的例子,一個單一的情況下確定。但是,這種方法會讓我頭痛,因爲我希望這些數據保持POSIX(更不用說它使我的代碼比應該更加可怕)。有沒有一個優雅的解決方案呢?
您的意思是從'11-12'類別中排除'12'嗎? – thelatemail
@thelatemail,我沒有。感謝您指出,我會解決它。 –