我正在使用 R 中的数据集,其中主要关注领域是日期。(这与军队的小规模冲突有关,并记录小规模冲突的日期)。我想检查这些是否更有可能发生在给定的季节或假期附近等,所以我希望能够查看夏季、冬季等有多少日期,但我有点如何做到这一点的损失。
问问题
1376 次
1 回答
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]
现在使用“someSeasons”将您的数据分组到您最喜欢的统计分析的日期范围内。对于统计分析的选择,我想到了针对曝光(即季节长度)调整的泊松回归,但这对于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...
于 2015-02-22T19:37:53.830 回答