New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal for new func to calculate epiweek and epiyear #492

Closed
rbalshaw opened this Issue Nov 7, 2016 · 6 comments

Comments

Projects
None yet
3 participants
@rbalshaw

rbalshaw commented Nov 7, 2016

The epiweek function takes a scalar x or vector x and returns the numeric epiweek for that date.

x can be entered as in any format recognized by lubridate's isoweek i.e., a date-time object. Must be a POSIXct, POSIXlt, Date, chron, yearmon, yearqtr, zoo, zooreg, timeDate, xts, its, ti, jul, timeSeries, or fts object
Here is the "definition" I've been working from (this defines both week and year).

The first epi week of the year ends, by definition, on the first Saturday of January, as long as it falls at least four days into the month. Each epi week begins on a Sunday and ends on a Saturday.

This can be achieved by simple change to isoweek and isoyear.

epiweek is based on isoweek from lubridate. The difference is in dn, where we add +6 here and +4 in isoweek because here we want to know where first Sat falls rather than first Thurs as in isoweek.

epiweek <- function(x)
{
require(lubridate)
xdate <- make_datetime(year(x), month(x), day(x))
dn <- 1 + (wday(xdate) + 6)%%7
nth <- xdate + ddays(4 - dn)
jan1 <- make_datetime(year(nth), 1, 1)
1L + as.integer(difftime(nth, jan1, units = "days")) %/% 7L
}

epiyear <- function(x)
{
require(lubridate)
xdate <- make_datetime(year(x), month(x), day(x))
dn <- 1 + (wday(xdate) + 6)%%7
nth <- xdate + ddays(4 - dn)
year(nth)
}

@vspinu

This comment has been minimized.

Show comment
Hide comment
@vspinu

vspinu Nov 20, 2016

Member

So it's exactly as isoweek but the week starts on Sunday?

Member

vspinu commented Nov 20, 2016

So it's exactly as isoweek but the week starts on Sunday?

@vspinu

This comment has been minimized.

Show comment
Hide comment
@vspinu

vspinu Nov 20, 2016

Member

duplicate of #256.

Member

vspinu commented Nov 20, 2016

duplicate of #256.

@vspinu vspinu closed this in f53a618 Nov 20, 2016

@rbalshaw

This comment has been minimized.

Show comment
Hide comment
@rbalshaw

rbalshaw Nov 20, 2016

Thank you, gentlemen.

Rob

On Nov 20, 2016, at 4:53 AM, Vitalie Spinu <notifications@github.commailto:notifications@github.com> wrote:

Closed #492#492 via f53a618f53a618.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/tidyverse/lubridate/issues/492#event-865600836, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AS8Q__ajQaaE0NwyWNJT5l7XXlhwJebJks5rAEK_gaJpZM4Krgzq.

rbalshaw commented Nov 20, 2016

Thank you, gentlemen.

Rob

On Nov 20, 2016, at 4:53 AM, Vitalie Spinu <notifications@github.commailto:notifications@github.com> wrote:

Closed #492#492 via f53a618f53a618.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/tidyverse/lubridate/issues/492#event-865600836, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AS8Q__ajQaaE0NwyWNJT5l7XXlhwJebJks5rAEK_gaJpZM4Krgzq.

@chrismerkord

This comment has been minimized.

Show comment
Hide comment
@chrismerkord

chrismerkord Jul 6, 2017

Epidemiological weeks begin on Sunday in the U.S. and are used by the CDC and various state agencies. But in most of the rest of the world, epi weeks begin on Monday and are therefore equivalent to iso weeks. The World Health Organization and pretty much every other international organization, and most countries other than the US (as far as I know) use this ISO standard for epidemiological weeks.

I would like to see one of two things happen:

  1. add something to the documentation explicitly stating this is the US/CDC implementation, not the ISO/WHO implementation.
    OR
  2. add an argument to the function allowing the user to choose between these two options.

Let me know what you think. I'd be happy to work on a solution and submit a pull request.

chrismerkord commented Jul 6, 2017

Epidemiological weeks begin on Sunday in the U.S. and are used by the CDC and various state agencies. But in most of the rest of the world, epi weeks begin on Monday and are therefore equivalent to iso weeks. The World Health Organization and pretty much every other international organization, and most countries other than the US (as far as I know) use this ISO standard for epidemiological weeks.

I would like to see one of two things happen:

  1. add something to the documentation explicitly stating this is the US/CDC implementation, not the ISO/WHO implementation.
    OR
  2. add an argument to the function allowing the user to choose between these two options.

Let me know what you think. I'd be happy to work on a solution and submit a pull request.

@rbalshaw

This comment has been minimized.

Show comment
Hide comment
@rbalshaw

rbalshaw Jul 6, 2017

rbalshaw commented Jul 6, 2017

@vspinu

This comment has been minimized.

Show comment
Hide comment
@vspinu

vspinu Jul 8, 2017

Member

Please open a new issue for this. Would adding week_start option as in wday help?

Member

vspinu commented Jul 8, 2017

Please open a new issue for this. Would adding week_start option as in wday help?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment