R - Расчет комбинированной метрики для фрейма данных на основе другого - PullRequest
0 голосов
/ 01 мая 2018

Мой фрейм данных выглядит так:

df = data.frame(Region=c(rep("NORDICS",1100),rep("DACH",900),rep("MED",1800),rep("CEE",15000),
                     rep("FRANCE",2000),rep("UK&I",2500)),
            Score=c(sample(seq(from = 1, to = 4, by = 1), size = 1100, replace = TRUE,prob = c(0.6,0.2,0.1,0.1)),
                 sample(seq(from = 1, to = 4, by = 1), size = 900, replace = TRUE,prob = c(0.3,0.3,0.2,0.2)),
                 sample(seq(from = 1, to = 4, by = 1), size = 1800, replace = TRUE,prob = c(0.8,0.1,0.05,0.05)),
                 sample(seq(from = 1, to = 4, by = 1), size = 15000, replace = TRUE,prob = c(0.2,0.2,0.2,0.4)),
                 sample(seq(from = 1, to = 4, by = 1), size = 2000, replace = TRUE,prob = c(0.9,0.05,0.03,0.02)),
                 sample(seq(from = 1, to = 4, by = 1), size = 2500, replace = TRUE,prob = c(0.9,0.05,0.03,0.02))))

Фрейм данных - это набор индивидуальных баллов по регионам, где каждое наблюдение представляет собой отдельный балл для вопроса (столбец Score).

Вопрос по шкале от 1 до 4.

На основе этого кадра данных я вычисляю KPI по регионам из столбца Score. KPI - это сумма ответов, равная 1 или 2, деленная на общее количество ответов для данного региона.

Мой код ниже для расчета KPI по регионам:

library(dplyr)

KPI_by_Region=df %>% group_by(Region) %>%
summarise(KPI = sum(Score %in% c(1,2))/n())

Мой вопрос

Использование только кадра данных KPI_by_Region, который содержит показатели KPI по регионам -

Могу ли я узнать показатель KPI для всех регионов вместе, не имея запустить мой код на всем фрейме данных (df)?

1 Ответ

0 голосов
/ 01 мая 2018

Дает ли это результат, который вы ищете?

KPI_by_Region <- df %>%
  group_by(Region) %>%
  summarise(KPI = sum(Score %in% c(1,2))/n(), Count = n())

allRegionsKPI <- sum(KPI_by_Region$KPI * KPI_by_Region$Count) / sum(KPI_by_Region$Count)
...