이규진
이규진

Reputation: 3

Year-month-week expression

I have a data written in specific expression. To simplify the data, here is the example I made:

df<-data.frame(date=c(2012034,2012044,2012051,2012063,2012074),
               math=c(100,100,23,46,78))

2012034 means 4th week of march,2012. Likewise 2012044 means 4th week of April,2012. I was trying to make the values of date expressing some order. The reason why I have to do this is because when I don't change them to time expressions, x axis of the scatter plot looks really weird.

My goal is this: Find the oldest date in date column and name it as 1. In this case, 2012034 should be 1. Next, find the second oldest date in date column and calculate how many weeks passed after that date. The second oldest date in date is 2012044.So, 5 weeks after the oldest date 2012034. So it should be changed as 1+5=6. So, likewise, I want to number the date to indicate how many weeks have passed since the oldest date

Upvotes: 0

Views: 52

Answers (1)

Sotos
Sotos

Reputation: 51582

One way to do it is by also specifying the day of the week and subtract it at the end, i.e.

as.Date(paste0(df$date, '-1'), '%Y%m%U-%u') - 1
#[1] "2012-03-22" "2012-04-22" "2012-05-01" "2012-06-15" "2012-07-22"

Upvotes: 2

Related Questions