У меня есть кадр данных, как:Таблица недели до даты
> df
week month year x
1 1-7 sep 2013 566
2 8-14 sep 2013 65
3 15-21 sep 2013 144
4 22-28 sep 2013 455
5 29-30 sep 2013 1212
И нужно, чтобы преобразовать его в:
> df_out
date x
1 01/09/2013 80.86
2 02/09/2013 80.86
3 03/09/2013 80.86
4 04/09/2013 80.86
5 05/09/2013 80.86
6 06/09/2013 80.86
7 07/09/2013 80.86
8 08/09/2013 9.29
9 09/09/2013 9.29
10 10/09/2013 9.29
11 11/09/2013 9.29
12 12/09/2013 9.29
13 13/09/2013 9.29
14 14/09/2013 9.29
Объяснение: Неделя 1-7 сентября 2013 года имеет 566 единиц Икс. Я хочу построить временной ряд, который дает мне единицы для каждого дня недели (с 2013-09-01 по 2013-09-07), равные 566/7.
Примечание, который может быть рядом (например, строка 5 моего df), где у нас есть только 2 дня. Таким образом, значение x для 2013-09-29 будет 1212/2 = 606
Я попытался сделать это в Excel, построив начало и дату окончания для каждой строки df. Это разделитель недельного столбца на «-» и построение столбцов даты. Я могу сделать это в R, но потом я застрял.
данных:
df <- structure(list(week = c("1-7", "8-14", "15-21", "22-28", "29-30"
), month = c("sep", "sep", "sep", "sep", "sep"), year = c(2013L,
2013L, 2013L, 2013L, 2013L), x = c(566L, 65L, 144L, 455L, 1212L
)), .Names = c("week", "month", "year", "x"), class = "data.frame", row.names = c(NA,
-5L))
Ваши даты правильно? Разве они не отличаются на 7 дней, а не на 1 день? Например, не 01/09/2013 80.86 02/09/2013 80.86 но 01/09/2013 80.86 ** 08 **/09/2013 80.86 и т. Д. – user1945827
Нет, все в порядке. См. Ответ @ Robert –
Кстати, я также сделал решение для Excel. Я найду время, чтобы опубликовать его здесь –