Избыточные даты во временных рядах

Я устанавливаю временной ряд из фрейма данных ("TotalGuirvidig"), в котором у меня есть 3 основных интересующих столбца: "Дата", "Животные", и третий созданный мной столбец под названием "Daily_Animals", сумма всех животное считается в тот же день. Я создал "Daily_Animals" unsing

TotalGuirvidig <- Guirvidig %>% group_by(Date) %>% mutate(Daily_Animals = sum(Animals))

Отлично, но допустим, что дата 07-11-2017, и мы наблюдали 40, 23 и 17 животных. Теперь в столбце Daily_Animals мы получаем сумму 80 3 раза, по одному разу для каждого исходного наблюдения.

Сначала я не особо задумывался об этом, но когда я сдвигаю фрейм данных во временной ряд

GTS <- zoo(TotalGuirvidig$Daily_Animals, order.by=as.Date(TotalGuirvidig$Date, format='%Y/%m/%d'))
ts(GTS)

Я заметил, что даты с несколькими наблюдениями отображаются несколько раз в одну и ту же дату, потому что каждое наблюдение в одну и ту же дату имеет одинаковую сумму Daily_Animal.

Я планирую сделать некоторые прогнозы, и я обеспокоен тем, что эти повторения ежедневных сумм сбрасывают мои прогнозы. Можно ли каким-то образом заставить R игнорировать повторяющиеся суммы в одну и ту же дату при установлении моего временного ряда?

Изменить: вот пример фрейма данных

Year  Week       Date  Location Animals           From            To     Notes Daily_Animals
<int> <int>     <date>     <chr>   <int>          <chr>         <chr>     <chr>         <int>
1  2010    31 2010-08-01 GUIRVIDIG     580 Bongor – Tchad BANKI NIGERIA       RAS           580
2  2010    32 2010-08-08 GUIRVIDIG     780  Glenden Tchad BANKI NIGERIA       RAS           780
3  2010    33         NA GUIRVIDIG      NA           <NA>          <NA>      <NA>            NA
4  2010    34 2010-08-22 GUIRVIDIG     680 Bongor – Tchad BANKI NIGERIA   2 voles           680
5  2010    34 2010-08-23 GUIRVIDIG     880  Glenden Tchad BANKI NIGERIA       RAS           880
6  2010    35 2010-08-29 GUIRVIDIG     495 Bongor – Tchad BANKI NIGERIA       RAS           495
7  2010    35 2010-08-30 GUIRVIDIG     506  Glenden Tchad BANKI NIGERIA 1 malades           506
8  2010    36 2010-09-06 GUIRVIDIG     262   kijabe-tchad BANKI NIGERIA       RAS           262
9  2010    37 2010-09-13 GUIRVIDIG      70  Glenden Tchad BANKI NIGERIA       RAS            70
10  2010    38         NA GUIRVIDIG      NA           <NA>          <NA>      <NA>            NA
# ... with 484 more rows

Edit2: ниже приведен пример, который фактически демонстрирует, как пишется новый столбец

Year  Week       Date  Location Animals           From            To     Notes Daily_Animals
<int> <int>     <date>     <chr>   <int>          <chr>         <chr>     <chr>         <int>
1  2010    31 2010-08-01 GUIRVIDIG     40 Bongor – Tchad BANKI NIGERIA       RAS           80
2  2010    32 2010-08-01 GUIRVIDIG     23  Glenden Tchad BANKI NIGERIA       RAS           80
3  2010    34 2010-08-21 GUIRVIDIG     17 Bongor – Tchad BANKI NIGERIA   2 voles           80

1 ответ

Если вы не хотите сохранять строку для каждого отдельного числа животных, то, возможно, вы захотите использовать dplyr::sumrize вместо mutate, поскольку mutate просто добавит столбец, но сохранит все строки?

?summarise 
TotalGuirvidig <- Guirvidig %>% group_by(Date) %>% summarise(Daily_Animals = sum(Animals))

Или вы можете использовать dplyr:: Different после mutate и выбрать, из каких столбцов вы хотите сохранить разные значения.

?distinct
TotalGuirvidig <- Guirvidig %>% group_by(Date) %>% mutate(Daily_Animals = sum(Animals)) %>%
          distinct(Date, .keep_all = TRUE)

Немного трудно понять, что именно лучше, так как в данных вашего примера нет дублированных Daily_Animals, поэтому, если вышеприведенное не сработает, возможно, покажите раздел с дубликатами и желаемым выводом?

Другие вопросы по тегам