gpt4 book ai didi

基于 ReactiveUI 问题的 ReactiveUI

转载 作者:行者123 更新时间:2023-12-04 04:42:42 25 4
gpt4 key购买 nike

我的代码在下面,演示站点在这里:http://glimmer.rstudio.com/kdavenport/test1/

第一个输入(下拉菜单)加载 global.R 中定义的数据框

第二个输入(下拉列表)通过 df 的“服务”列过滤此数据框

第三个输入(复选框)通过 df 的“Round”列进一步过滤数据框

问题是显示了第一步中数据框可用的所有复选框,而不是在步骤 2 中按“服务”过滤后可用的复选框。下面我有 1.clientData > serviceFiltered_clientData > roundFiltered_clientData

shinyServer(function(input, output) {

# First UI input (Service column) filter clientData
output$serviceControls <- renderUI({
if (is.null(clientData()))
return("No client selected")
selectInput("service_select",
"Choose Service:",
choices = as.character(levels(clientData()$Service.Name)),
selected = input$service_select
)
})

# Second UI input (Rounds column) filter service-filtered clientData
output$roundControls <- renderUI({
if (is.null(serviceFiltered_clientData()))
return("No service selected")
checkboxGroupInput("round_select",
"Choose Round:",
choices = as.character(levels(serviceFiltered_clientData()$Round)))
})

# First data load (client data)
clientData <- reactive({
if (is.null(input$client_select))
return(NULL)
get(input$client_select)
})

# Second data load (filter by service column)
serviceFiltered_clientData <- reactive({
dat <- clientData()
if (is.null(dat))
return(NULL)
if (!is.null(input$service_select)) # !
dat <- dat[dat$Service.Name %in% input$service_select,]
return(dat)
})

# Third data load (filter by round column)
roundFiltered_clientData <- reactive({
dat <- serviceFiltered_clientData()
if (is.null(dat))
return(NULL)
if (!is.null(input$round_select)) # !
dat <- dat[dat$Round %in% input$round_select,]
return(dat)
})


# Audit count panel
output$auditsCount <- renderText({
if (is.null(roundFiltered_clientData()))
return("No client selected")
paste("Total Audits:",nrow(roundFiltered_clientData()))
})

最佳答案

react 性菊花链一直在工作,问题在于“Round”列被加载为一个因子,并且因子在子集化后作为数据帧属性持续存在。因此,我需要在对数据进行子集化后使用 droplevels()。我加了 dat <- droplevels(dat)下面:

  # Second data load (filter by service column)
serviceFiltered_clientData <- reactive({
dat <- clientData()
if (is.null(dat))
return(NULL)
if (!is.null(input$service_select)) # !
dat <- dat[dat$Service.Name %in% input$service_select,]
dat <- droplevels(dat) # This is what fixed it
return(dat)
})

关于基于 ReactiveUI 问题的 ReactiveUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18660225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com