Мне нужна помощь в принятии годового итога (по каждой из многих инициатив) и разбивка на каждый месяц с использованием простой формулы разделения. Мне нужно сделать это для каждой отдельной комбинации нескольких столбцов при копировании вниз по столбцам, которые разбиты с годового числа на каждый ежемесячный итог. Цикл применит формулу к двум столбцам и процитирует каждую отдельную группу в векторе. Я попытался объяснить в приведенном ниже примере, поскольку он несколько сложный.Копировать данные столбца, когда функция деагрегации одной строки в несколько в R
Что у меня есть:
| Init | Name | Date |Total Savings|Total Costs|
| A | John | 2015 | TotalD | TotalD |
| A | Mike | 2015 | TotalE | TotalE |
| A | Rob | 2015 | TotalF | TotalF |
| B | John | 2015 | TotalG | TotalG |
| B | Mike | 2015 | TotalH | TotalH |
......
| Init | Name | Date |Total Savings|Total Costs|
| A | John | 2016 | TotalI | TotalI |
| A | Mike | 2016 | TotalJ | TotalJ |
| A | Rob | 2016 | TotalK | TotalK |
| B | John | 2016 | TotalL | TotalL |
| B | Mike | 2016 | TotalM | TotalM |
Я собираюсь цикл функции для первой строки принять «Общую экономию» и «Всего расходы» и разделить на 12, где Date = 2015 и 9, где Date = 2016 (с начала года до сентября) и создайте для каждой отдельной строки. Я по существу вырываю годовой итог подряд и создаю ряд для каждого месяца в году. Мне нужна помощь в запуске этого цикла для копирования также столбцов «Init», «Name», пока комбинация «Init», «Name» не отличается. Кроме того, обратите внимание, что формула для деления в зависимости от года будет отличаться. Я полагаю, что я мог бы разделить наборы данных на 2015 и 2016 годы и использовать две разные функции и объединиться, если это будет проще. Ниже следует вывод:
| Init | Name | Date |Monthly Savings|Monthly Costs|
| A | John | 01-01-2015 | TotalD/12* | MonthD |
| A | John | 02-01-2015 | MonthD | MonthD |
| A | John | 03-01-2015 | MonthD | MonthD |
...
| A | Mike | 01-01-2016 | TotalE/9* | TotalE |
| A | Mike | 02-01-2016 | TotalE | TotalE |
| A | Mike | 03-01-2016 | TotalE | TotalE |
...
| B | John | 01-01-2015 | TotalG/12* | MonthD |
| B | John | 02-01-2015 | MonthG | MonthD |
| B | John | 03-01-2015 | MonthG | MonthD |
TotalD/12 * = MonthD - это формула для 2015
Тотала/9 * = МОНТ - это формула для 2016
Любой помощь будет оценена ...
Спасибо @Mark. К сожалению, этот пример упростил представление моего фактического кадра данных. Так как у меня более 40 различных значений «init» и разных значений «name» (не всегда повторяющихся), я надеюсь перезапустить цикл каждый раз, когда есть отдельная комбинация «Init» == «Name». – CGermain
Что значит «перезапустить петлю»? Вы пытаетесь разбить каждую строку (годовую сводку) на 9/12 строк (ежемесячная разбивка) или есть ли еще какая-то часть, которую мне не хватает? Это разделяет каждую строку, независимо от значений init/name. –
Я пытаюсь разбить годовую сводку на 9/12 строк для каждого годового резюме, где «Инициал» и «Имя» являются той же комбинацией, что и их изменение в различные комбинации. Как я уже упоминал, существует около 40 различных значений «Init» (это имена инициалов проекта) и 10 значений «Name» (это имена делений). Каждый «Init» будет иметь несколько отчетов «Название» (depts), поэтому мне нужно вырваться на ежемесячную экономию и затраты для всех различных комбинаций инициатив и делений, сохраняя при этом каждую ежемесячную экономию/себестоимость. Это имеет смысл? – CGermain