Добавьте годы в столбец и просуммируйте значение в R - PullRequest
0 голосов
/ 05 мая 2020

У меня есть фрейм данных, как показано ниже

cust start-dt    end-dt      item item_type sales cost trans-dat
A    07-01-2019  07-01-2020  AA   xxxxxxxxx 1500  1400 08-01-2019
A    07-01-2019  07-01-2020  AA   xxxxxxxxx 2000  1600 09-01-2019
A    07-01-2019  07-01-2020  AA   xxxxxxxxx 2500  1000 07-12-2019
A    07-01-2019  07-01-2020  AA   xxxxxxxxx 1600  1300 05-01-2020
A    07-01-2019  07-01-2020  AA   xxxxxxxxx 2400  1700 02-01-2020
A    07-01-2019  07-01-2020  AA   xxxxxxxxx 2200  1300 04-01-2020

Мне нужно преобразовать в годовые данные, как показано ниже. на основе клиента и предмета, который они покупали каждый год

cust start-dt    end-dt      item item_type  year sales cost
A    07-01-2019  07-01-2020  AA   xxxxxxxxx  2019 6000  4000
A    07-01-2019  07-01-2020  AA   xxxxxxxxx  2020 6200  4300

Я пробовал расплавить и отлить, но плавление не создает новых столбцов / строк.

эти данные являются только примером. У меня есть несколько клиентов и несколько товаров для каждого клиента, и начало и конец также различаются для каждого клиента.

Пожалуйста, расскажите мне, как подойти к этому вопросу.

1 Ответ

1 голос
/ 05 мая 2020

Похоже, что year в результате взято из столбца trans-dt. Итак, вам нужно извлечь этот год и получить сгруппированную сумму. Вот метод dplyr:

library(dplyr)
df %>% 
  mutate(year = as.integer(substr(`trans-dt`, 7, 10))) %>% # chars 7 to 10 as the year
  group_by(cust, `start-dt`, `end-dt`, item, item_type, year) %>%
  summarize(sales = sum(sales), cost = sum(cost))

Дополнительную информацию см. В FAQ по суммированию по группам .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...