Data Wrangling - R - Хотите удалить строки, которые соответствуют fyweek и launchweek - PullRequest
0 голосов
/ 06 ноября 2018

В поисках решения для удаления строк за недели, которые идут между FY_Week и Launch_Week. Каждая строка для product_ID и выглядит как таблица ниже: -

Цель - не учитывать строки, заштрихованные желтым цветом (записи, которые относятся к неделям, которые находятся между fy_week и неделей запуска). и мы хотим объединить средние продажи за то же самое. Ищем решение в г. Заранее спасибо :) Dataset

1 Ответ

0 голосов
/ 06 ноября 2018

Вот ответ с использованием dplyr.

library(dplyr)

Воссоздание ваших данных:

data <- tibble(
  product_id = rep(c("abc1", "abc2"), each = 3),
  FYWeek = rep(c(20, 22), each = 3),
  Launch_Week = rep(c(30, 28), each = 3),
  Week = c(21, 31, 32, 25, 29, 26),
  Sale = c(453, 408, 473, 466, 473, 412)
)

Откажитесь от строк, не соответствующих вашим условиям, и получите среднее значение Sale оставшихся строк:

data %>% 
  filter(Week < FYWeek | Week > Launch_Week) %>%
  mutate(avg = mean(Sale))

# A tibble: 3 x 6
  product_id FYWeek Launch_Week  Week  Sale   avg
  <chr>       <dbl>       <dbl> <dbl> <dbl> <dbl>
1 abc1           20          30    31   408  451.
2 abc1           20          30    32   473  451.
3 abc2           22          28    29   473  451.
...