不同年份不同日期的周数增加

时间:2013-11-17 18:25:33

标签: r date datetime dataframe

我有两年的日期 - 2012年和2013年。我在数据框中按升序排列日期,但它们会在一段时间后根据其他标准重复。我希望在数据框中添加另一列,增加周数。

我想出了实现以下目标的代码:

Date    WeekNumber
12/31/2012  53
12/31/2012  53
12/31/2012  1
1/1/2013    1
1/1/2013    1
12/31/2012  53
12/31/2012  53

我想要达到以下目标:

 Date   WeekNumber
12/31/2012  1
12/31/2012  1
12/31/2012  2
1/1/2013    2
1/1/2013    2
12/31/2012  1
12/31/2012  1

我希望在某个特定日期(2012-01-01,比如说)之后,周数会增加。 “日期”列的格式为Date

1 个答案:

答案 0 :(得分:0)

您的数据似乎是以非常奇怪的方式排序的......但是,假设您有类似的东西,

Date    WeekNumber
12/31/2012  53
1/1/2013    1
12/31/2013  53
1/1/2014    1
12/31/2014  53

你可以运行

data <- read.table("stack.txt", sep="\t", header=TRUE)
year <- function(date){
    as.numeric(format(as.POSIXct(date, format="%m/%d/%Y"), format="%Y"))
}
FirstYear <- year(data$Date[1])
data$WeekNumber <- data$WeekNumber  + 53*(year(data$Date) - FirstYear)
# And add if you want ...
# data$WeekNumber <- data$WeekNumber - 53

并获取

Date    WeekNumber
12/31/2012  53
1/1/2013    54
12/31/2013  106
1/1/2014    107
12/31/2014  159