Я работаю с панелью управления PowerBi, которая сравнивает наличие определенных черт в целевой группе с базовой совокупностью.Это прекрасно работает с развертками в PowerBi и выглядит следующим образом:
Теперь я хочу добиться аналогичного эффекта в R Visual, который я включил вприборная панель моего Power Bi.В Shiny я достиг этого, располагая отфильтрованный и нефильтрованный набор данных рядом друг с другом и объединив его в один график.
Образец набора данных для R
TargetGroupFilter <- sample( c("Yes", "No"), 50, replace=TRUE, prob=c(0.5, 0.5) )
ActivityA <- sample( c("Yes", "No"), 50, replace=TRUE, prob=c(0.5, 0.5) )
ActivityB <- sample( c("Yes", "No"), 50, replace=TRUE, prob=c(0.7, 0.3) )
ActivityC <- sample( c("Yes", "No"), 50, replace=TRUE, prob=c(0.2, 0.8) )
WEIGHT <- sample (30:50, 50, replace = TRUE)
df <- data.frame(TargetGroupFilter, ActivityA, ActivityB, ActivityC, WEIGHT)
R-код
library(tidyverse)
library(scales)
dfBase <- df
dfTarget <- df[df$TargetGroupFilter == "Yes",]
dfBase1 <- gather(dfBase, key = "Activity", value = "Answer", ActivityA, ActivityB, ActivityC)
dfBase1 <- group_by(dfBase1, Activity, Answer)
dfBase1 <- summarise(dfBase1, Population = sum(WEIGHT))
dfBase1 <- ungroup(dfBase1)
dfBase1 <- mutate(dfBase1, Share = (Population / sum(dfBase$WEIGHT)))
dfBase1$Target <- rep("Base",NROW(dfBase1))
dfTarget1 <- gather(dfTarget, key = "Activity", value = "Answer", ActivityA, ActivityB, ActivityC)
dfTarget1 <- group_by(dfTarget1, Activity, Answer)
dfTarget1 <- summarise(dfTarget1, Population = sum(WEIGHT))
dfTarget1 <- ungroup(dfTarget1)
dfTarget1 <- mutate(dfTarget1, Share = (Population / sum(dfTarget$WEIGHT)))
dfTarget1$Target <- rep("Target",NROW(dfTarget1))
dfCompare <- rbind(dfBase1,dfTarget1)
dfCompare <- dfCompare [dfCompare$Answer == "Yes",]
dfCompare
ggplot(dfCompare)+
aes(x=Activity, y=Share, fill=Target)+
geom_bar(position = "dodge", stat= "identity")+
scale_y_continuous(labels=percent, limits = c(0,1))
Таблица результатов
Проблема
Отфильтрованный набор данных должен быть получен либо в результате выбора развертки, либо из выбора фильтра уровня отчета вмощность би.Это прекрасно работает, когда я отображаю только отфильтрованные данные.Проблема возникает, когда я хочу отобразить отфильтрованные и нефильтрованные данные в R Visual.Мне известно, что я могу работать с закодированными фильтрами после добавления нефильтрованных данных к соответствующему визуалу.Но я хочу, чтобы отображение отфильтрованных данных реагировало на выбор фильтра или детализации, которые пользователь панели мониторинга делает в Power Bi UX.
Вопросы
Существует ли способ подачи отфильтрованных и нефильтрованных данных в R Visual?Есть ли хороший способ достичь такого визуального эффекта только с Power Bi?