2017-12-15 11 views
1

私は現在以下のデータを持っています。週に番号を指定する(時系列)

> head(total) 
    ID WEEK QTY SHOP EUR KEY  COL 
1: 1123539 1147  1  GR 2.39 652159 10090100003 
2: 3102228 1129  1  GR 2.15 257871 10090100003 
3: 3321265 1129  1  GR 2.15 257871 10090100003 
4: 3321265 1122  1  GR 2.15 257871 10090100004 
5: 1120774 1151  1  GR 2.39 213290 10090100005 
6: 1145763 1157  1  GR 2.39 213290 10090100005 

> tail(total) 
    ID WEEK QTY SHOP EUR KEY  COL 
1: 1133538 1728  1  GK 3.19 9999879 825277200104 
2: 1133538 1728  1  GK 3.19 9999879 825277200104 
3: 1141960 1691  1  GK 3.29 9999879 825277200104 
4: 1302364 1729  1  GK 3.19 9999879 825277200104 
5: 1808485 1714  1  GK 3.29 9999879 825277200104 
6: 1808485 1720  1  GK 3.19 9999879 825277200104 

私はWEEK列に日付を割り当てようとしています。

データは

データがWEEK 24/12/2017で終了(私の計算が行く限り)01/01/2001あるWEEK 1114で始まる - 30/12/2017

週間の翻訳は、以下の(エクセルの計算)のように定義されます。

括弧内には、Excelシートに数式を貼り付けています。 Rで

A    B        C 
    Week  starting on      ending on 
    1479 Dec 31, 200 (=(A2+4157)*7-5)  Jan 6, 2008 (=(A2+4157)*7+1) 
    1480 Jan 7, 2008       Jan 13, 2008 
    1481 Jan 14, 2008      Jan 20, 2008 
    1482 Jan 21, 2008      Jan 27, 2008 

    Sys Start date     WEEK 
    septiembre 3, 1979 (03/09/1979) 1 (=ROUND((E2+2)/7;0)-4157) 

は、私はインスタンス WEEK 1147のためにいただければ幸いです August 26, 2001

任意の助けに日付August 20, 2001に対応している必要があります週

の初めの日にWEEK数を設定しようとしています。


私は長年にわたり1年の地平線の上に成功していたではなく、時系列(そこ支援のためのAurélienのおかげで)としてデータを設定しようとしました。

完全に働いた
library(lubridate) 
inds <- seq(as.Date("2001-01-01"), as.Date("2012-12-30"), by = "week") 
set.seed(25) 
w <- lubridate::week(ymd("2001-01-01","2012-12-30")) 
y <- lubridate::year(ymd("2001-01-01","2012-12-30")) 
myts <- ts(total$WEEK, 
      start = c(y[1],w[1]), 
      end = c(y[2],w[2]), 
      frequency = 52) 

答えて

1
library(lubridate) 

dat = read.table("clipboard", header = TRUE) 

> head(dat) 
     ID WEEK QTY SHOP EUR KEY   COL 
1: 1123539 1147 1 GR 2.39 652159 10090100003 
2: 3102228 1129 1 GR 2.15 257871 10090100003 
3: 3321265 1129 1 GR 2.15 257871 10090100003 
4: 3321265 1122 1 GR 2.15 257871 10090100004 
5: 1120774 1151 1 GR 2.39 213290 10090100005 
6: 1145763 1157 1 GR 2.39 213290 10090100005 

ref_date = as.Date("2001-01-01") 

dat$DATE = ref_date + weeks(dat$WEEK - 1114) 

> dat 
     ID WEEK QTY SHOP EUR KEY   COL  DATE 
1: 1123539 1147 1 GR 2.39 652159 10090100003 2001-08-20 
2: 3102228 1129 1 GR 2.15 257871 10090100003 2001-04-16 
3: 3321265 1129 1 GR 2.15 257871 10090100003 2001-04-16 
4: 3321265 1122 1 GR 2.15 257871 10090100004 2001-02-26 
5: 1120774 1151 1 GR 2.39 213290 10090100005 2001-09-17 
6: 1145763 1157 1 GR 2.39 213290 10090100005 2001-10-29 
+0

!私が思ったほど複雑ではありませんでした!どうもありがとう! – user113156

関連する問題