在R中分类日期

时间:2015-02-22 19:15:34

标签: r date categories categorization

我正在使用R中的数据集,其中主要感兴趣的区域是日期。 (这与军队冲突有关,记录了小冲突的日期)。我想检查这些是否更有可能发生在某个季节或假期附近等等,所以我希望能够看到夏天,冬天等有多少日期,但我有点喜欢如何做到这一点的损失。

1 个答案:

答案 0 :(得分:1)

一般建议:如果您遇到问题,请使用包lubridate将字符串转换为日期。使用cut()将日期划分为范围,如下所示:

someDates <- c( '1-1-2013',
               '2-14-2013',
               '3-5-2013',
               '8-21-2013',
               '9-15-2013',
               '11-28-2013',
               '12-22-2013')
cutpoints<- c('1-1-2013',# star of range 'winter'
              '3-20-2013',# spring
              '6-21-2013',# summer
              '9-23-2013',# fall
              '12-21-2013',# winter
              '1-1-2014')# end of range

library(lubridate)
temp <- cut(mdy(someDates),
            mdy(cutpoints),
            labels=FALSE)
someSeasons  <-  c('winter',
                   'spring',
                   'summer',
                   'fall',
                   'winter')[temp]

现在使用&#39; someSeasons&#39;将您的数据分组到您喜欢的日期范围 统计分析。对于统计分析的选择,泊松 调整暴露(即季节的长度)的回归来到 请注意,Cross Validated

这可能是一个更好的问题

你可以像这样定期制作一个切割点矢量:

cutpoints<- c('3-20-2013',# spring
              '6-21-2013',# summer
              '9-23-2013',# fall
              '12-21-2013')# winter

temp <- cut(mdy(someDates),
            outer(mdy(cutpoints), years(1:5),`+`),
            labels=F)
someSeasons  <-  c('spring',
                   'summer',
                   'fall',
                   'winter')[(temp-1)%% 4 + 1] #the index is just a little tricky...