В моем блестящем приложении я хотел бы построить гистограмму с накоплением на основе показателей, выбранных в раскрывающемся меню.
У меня есть 3 числовых столбца: номер клиента, номер транзакции и сумма_платы.
В раскрывающемся меню (тип метрики) я могу выбрать любой из них.Моя гистограмма изменится соответственно.
Один из способов, предложенных в Интернете, - поместить все метрики в один столбец и отфильтровать строки, принадлежащие этим метрикам.
Я пытаюсь разделить метрики,Я выбираю столбцы факторов и столбцы показателей и изменяю имя столбца показателей.
Я получаю сообщение об ошибке «Столбец weight_metrics
должен иметь уникальное имя».Я не знаю, что случилось.
Я новичок в сиянии.Мы будем благодарны за любые предложения.
С уважением,
Bing
==================================
Вот упрощенные коды:
library(shiny)
library(ggplot2)
library(dplyr)
library(DT)
summary_1 <- read.csv("summary_1.csv")
ui <- fluidPage(
selectInput(inputId = 'var_type', label = NULL,
choices = c("Gender", "Age Group"),
selected = "Overall",
width = '250px'),
selectInput(inputId = 'metrics_type', label = NULL,
choices = c("# Customer" = "numb_ctm",
"# Transaction" = "numb_trn",
"$ Cost" = "tot_amt_pd"),
selected = "tot_amt_pd",
width = '250px'),
DT::dataTableOutput("monthly_sum"),
plotOutput("monthly_comparison")
)
server <- function(input,output) {
data1 <- reactive({
temp <- summary_1 %>%
select(din_month, category, input$metrics_type)
colnames(temp)[-1] <- "weight_metrics"
temp <- temp %>%
filter(var_type = input$var_type)
})
output$monthly_sum <- DT::renderDataTable(
DT::datatable(
data1(),
options = list(order = list(1, 'desc')),
rownames = FALSE,
colnames = c('Month', 'Group', 'metrics_type')
)
)
output$monthly_comparison <- renderPlot({
ggplot(data1(), aes(din_month)) +
geom_bar(aes(weight = weight_metrics, fill = category)) }
)
}
shinyApp(ui, server)
Данные здесь:
var_type,category,month,numb_ctm,numb_trn,tot_amt_pd
Age Group,G1: 24 to 37 year old,2018-01-01,896,1136,24701
Age Group,G2: 37 to 42 year old,2018-01-01,99,758,41972
Age Group,G2: 43 to 58 year old,2018-01-01,210,2180,44262
Age Group,G4: 59 to 74 year old,2018-01-01,1025,1408,198467
Age Group,G1: 24 to 37 year old,2018-02-01,27,1681,22071
Age Group,G2: 37 to 42 year old,2018-02-01,297,372,74920
Age Group,G2: 43 to 58 year old,2018-02-01,698,137,74063
Age Group,G4: 59 to 74 year old,2018-02-01,1172,2764,41573
Age Group,G1: 24 to 37 year old,2018-03-01,951,428,3584
Age Group,G2: 37 to 42 year old,2018-03-01,734,896,66483
Age Group,G2: 43 to 58 year old,2018-03-01,185,1129,24417
Age Group,G4: 59 to 74 year old,2018-03-01,1501,847,48692
Age Group,G1: 24 to 37 year old,2018-04-01,275,228,55665
Age Group,G2: 37 to 42 year old,2018-04-01,510,1374,33090
Age Group,G2: 43 to 58 year old,2018-04-01,781,986,122279
Age Group,G4: 59 to 74 year old,2018-04-01,0,1396,49184
Age Group,G1: 24 to 37 year old,2018-05-01,240,1438,46586
Age Group,G2: 37 to 42 year old,2018-05-01,504,381,46717
Age Group,G2: 43 to 58 year old,2018-05-01,358,813,132963
Age Group,G4: 59 to 74 year old,2018-05-01,659,1450,32746
Age Group,G1: 24 to 37 year old,2018-06-01,124,1321,3734
Age Group,G2: 37 to 42 year old,2018-06-01,619,30,15391
Age Group,G2: 43 to 58 year old,2018-06-01,195,1265,50682
Age Group,G4: 59 to 74 year old,2018-06-01,489,1987,132992
Gender,F,2018-01-01,2045,5043,151696
Gender,M,2018-01-01,497,2793,50950
Gender,F,2018-02-01,974,205,184919
Gender,M,2018-02-01,2177,3949,159286
Gender,F,2018-03-01,43,46,9828
Gender,M,2018-03-01,927,520,40851
Gender,F,2018-04-01,288,4875,51426
Gender,M,2018-04-01,778,1994,74220
Gender,F,2018-05-01,1915,4693,258544
Gender,M,2018-05-01,1736,3550,17810
Gender,F,2018-06-01,346,4311,103181
Gender,M,2018-06-01,1157,907,83196