Я хотел бы создать функцию, которая возвращает вектор - вектор должен содержать сумму значений в другом векторе (month_amount), но только суммирует значения в month_amount для соответствующего year_month (третий вектор) к индексу, по которому функция возвращает свое значение.
Обещаю, это будет иметь (немного) больший смысл после того, как вы увидите данные ...
Вот мои данные:
У меня есть фрейм данных, в котором хранятся 89 вложенных фреймов данных (хранятся в третьем столбце с использованием tidyr), и это выглядит так:
head(df)
# A tibble: 6 x 5
industry location data
<dbl> <dbl> <list>
1 8. 9. <tibble [627 × 5]>
2 1. 4. <tibble [5,879 × 5]>
3 9. 2. <tibble [1,271 × 5]>
4 1. 2. <tibble [8,939 × 5]>
5 1. 5. <tibble [6,093 × 5]>
6 10. 5. <tibble [315 × 5]>
Содержимое третьего столбца («данные»)структурированные идентично друг другу, они выглядят следующим образом:
> df$data[[1]]
# A tibble: 627 x 5
date monthly_amount year month year_month
<date> <dbl> <chr> <chr> <chr>
1 2013-01-01 753851. 2013 01 2013_01
2 2013-01-01 154426. 2013 01 2013_01
3 2013-01-01 499604. 2013 01 2013_01
4 2013-01-01 379321. 2013 01 2013_01
5 2013-01-01 213702. 2013 01 2013_01
6 2013-01-01 274118. 2013 01 2013_01
7 2013-01-01 282391. 2013 01 2013_01
8 2013-01-01 236070. 2013 01 2013_01
9 2013-01-01 182512. 2013 01 2013_01
10 2013-01-01 428778. 2013 01 2013_01
Вот фиктивный пример того, чего я пытаюсь достичь:
# A tibble: 627 x 5
date monthly_amount year month year_month desired_outcome
<date> <dbl> <chr> <chr> <chr> <dbl>
1 2013-01-01 753851. 2013 01 2013_01 "sum of all monthly_amount
2 2013-01-01 154426. 2013 01 2013_01 where year_month==2013_01"
3 2013-01-02 499604. 2013 02 2013_02 "sum of all monthly_amount
4 2013-01-02 379321. 2013 02 2013_02 where year_month==2013_02"
5 2013-01-02 213702. 2013 02 2013_02
6 2013-01-03 274118. 2013 03 2013_03 etc...
7 2013-01-03 282391. 2013 03 2013_03
8 2013-01-04 236070. 2013 04 2013_04
9 2013-01-04 182512. 2013 04 2013_04
10 2013-01-04 428778. 2013 04 2013_04
В идеале я сопоставлю эту функцию свсе 89 кадров данных, поэтому он должен быть достаточно общим, а не более точно сформулированным для цикла.
Любой совет, как мне лучше сформулировать этот вопрос (или подойти к этой проблеме!), великолепеночень ценится.