我希望获得周五开始的一年中的周数。 例如:
2016-01-01 to 2016-01-07
是一年中的第一周
2016-01-08 to 2016-01-14
是一年中的第二周
你能帮忙吗?
答案 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)
此函数的输出是整数
的周数希望这有助于:)