Ниже приведены мои данные.
Group, Sales,flag,Count
Paris,6738,0,15
Paris,5235,1,23
Paris,5907,1,15
Paris,5527,0,28
Paris,6934,1,27
Paris,6757,0,20
Paris,5394,1,31
Paris,5379,0,36
Paris,6266,1,40
Paris,5512,1,39
Paris,6506,1,29
Paris,5006,1,22
Paris,6465,1,17
Paris,6653,0,38
Paris,6719,0,12
New York,5333,1,19
New York,6763,1,37
New York,6468,0,32
New York,6923,0,34
New York,6705,0,16
New York,6542,0,11
New York,6497,0,19
New York,6616,0,27
New York,6788,0,26
New York,5876,1,33
New York,5382,0,40
New York,5688,0,34
New York,6667,1,20
New York,5929,1,28
New York,6096,0,30
Для каждого города я хотел бы рассчитать средние продажи для последовательных нулей, которые лежат до и после флага «1», для каждого города.
Ниже приведен вывод, который я получаю после использования приведенного ниже кода, предложенного в комментариях.
setDT(c)[, .(median(Sales), median(Count)), .(City, rleid(flag))][rleid %% 2 == 1, .(City, median = V1, count = V2)]
и ниже - вывод, который я получаю после использования предложенного кода.
head(d,20)
City median count
1: Paris 6738.000 15.00000
2: Paris 5527.000 28.00000
3: Paris 6757.000 20.00000
4: Paris 5379.000 36.00000
5: Paris 6686.000 25.00000
6: NY 6648.429 23.57143
7: NY 5535.000 37.00000
8: NY 6096.000 30.00000
Ожидаемый результат был прикреплен ниже.
Расхождение наступает для группы NY, (Медиана по продажам и количеству)
R Результат вывода кода:
6. Нью-Йорк - 6648,429 и граф - 23,57
Результат вывода в Excel:
NY - 6616 и граф - 26
Спасибо,
Jay