R星期五开始的星期编号

时间:2016-01-05 16:54:13

标签: r date week-number

我希望获得周五开始的一年中的周数。 例如:

2016-01-01 to 2016-01-07是一年中的第一周

2016-01-08 to 2016-01-14是一年中的第二周

你能帮忙吗?

2 个答案:

答案 0 :(得分:-1)

您可能会发现有用的一个包是Lubridate。它确实有助于使用日期和时间的任务。

例如:

> library(lubridate)
> week(as.POSIXct("2016-01-01"))
[1] 1

或者,如果您对万圣节的周数感到好奇:

> week(as.Date("2016-10-31"))
[1] 44

了解更多信息:https://cran.r-project.org/web/packages/lubridate/lubridate.pdf

答案 1 :(得分:-1)

在这种情况下你可以使用lubridate,我遇到了和你一样的问题。在我的情况下,我需要它在星期三开始,所以下面的代码将在星期三开始,

weekOnWed <- function(theDate) {
  formattedDate <- dmy (theDate)
  i <- 1
  while (i <= 7) {
    isWed <- dmy(paste("0", as.character(i), "/01/", year(formattedDate), sep = ""))
    ## because Wed is the 4th day of the week on Lubridate

您需要在Lubridate

上将以下数字更改为6(如周五为第6天)
    if (wday(isWed) == 4) {
      break;
    }
    else {
      i <- i + 1
    }
  }
  firstWed <- day(isWed)
  if (firstWed > 1) {
    firstWeek <- 2
  }
  else {
    firstWeek <- 1
  }
  rangeWeek <- as.integer(formattedDate - isWed) %/% 7
  weekNum <- rangeWeek + firstWeek
  weekNum
}

输入:字符串(格式为dd-mm-yyyy)

此函数的输出是整数

的周数

希望这有助于:)