定义切割函数从哪个工作日开始?

时间:2014-04-26 15:21:16

标签: r date cut

我希望Cut()跟随我在下面定义的dateRange对象,该对象从星期日开始。 剪切功能似乎在周六开始,但我需要它在周日开始

startDate = "2011-07-03"; endDate = "2011-8-07" ## starts on Sunday and ends on Sunday
dateRange <- seq(as.Date(startDate), to = as.Date(endDate), by = "day") ## This step is okay
dateRange
cut(dateRange, "weeks", ordered_result = TRUE) ## This I think where the problem is, it starts on the previous Saturday

请告诉我如何使cut()的输出提供与测试对象DateRange相同数量的bin。

以下是我如何使用cut()函数

dataSet <- runif(length(dateRange))
weeklyList <- split(dataSet, cut(dateRange, "weeks", ordered_result = TRUE)) ## This is how I use the cut() to bin my data.

非常感谢您的技术专长。

2 个答案:

答案 0 :(得分:2)

正如弗兰克所说,削减功能是在星期一开始,而不是星期六。您可以使用cut的start.on.monday选项来更改此设置。

> weeklyList <- split(dataSet, cut(dateRange, "weeks", ordered_result = TRUE, start.on.monday = FALSE))
> weeklyList
$`2011-07-03`
[1] 0.8208915 0.3073812 0.7427008 0.6856026 0.7733733 0.6258881 0.5222145

$`2011-07-10`
[1] 0.10739317 0.43350298 0.17186167 0.90407228 0.95883564 0.60972446 0.08929786

$`2011-07-17`
[1] 0.61130816 0.06738358 0.71603027 0.51067438 0.32632549 0.52515075 0.92037779

$`2011-07-24`
[1] 0.1391482 0.4253714 0.2754398 0.5745825 0.8776789 0.2088506 0.9773318

$`2011-07-31`
[1] 0.58218481 0.05610510 0.05400599 0.75924478 0.98367785 0.42556051 0.77251544

$`2011-08-07`
[1] 0.5907571

答案 1 :(得分:0)

不是使用“周”,而是可以像这样使用“7”吗?

weeklyList <- split (dataSet, cut(dateRange, 7, ordered_result=T))