我有两年的日期 - 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
。
答案 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