Domanda

I would like Cut() to follow the dateRange object that I defined below which starts on Sunday. It appears that the cut function starts on Saturday but I need it to start on Sunday

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

Please let me know how I can have the output of the cut() provides the same number of bins as the test object DateRange.

Here is how I use the cut() function

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

Your technical expertise is greatly appreciated.

È stato utile?

Soluzione

As Frank says, the cut function is beginning on Monday, not Saturday. You can change this by using the start.on.monday option to cut.

> 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

Altri suggerimenti

Instead of using "weeks", can you use "7" like this?

weeklyList <- split (dataSet, cut(dateRange, 7, ordered_result=T))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top