r - 闪亮时动态变量的电平选择
问题描述
我正在开发一个闪亮的应用程序,它将要求用户通过选择输入小部件从预加载的数据框中选择 n 个字符变量。为简单起见,仅使用两个字符变量(类别和品牌)创建数据框。
如果用户选择一个字符变量说类别,那么另一个小部件会动态出现,提示选择类别级别。如果他同时选择了两个字符变量,即类别和品牌,那么两个输入小部件会动态出现,提示选择两者的级别。
在类别变量中,我有两个级别(护肤和护发),他们的品牌当然不同。
挑战是当用户在第一个输入小部件和第二个输入小部件中选择护肤品时,我只希望护肤品牌在第三个输入小部件中显示为选项,如果第二个输入小部件中的护发那么只有护发品牌在第三个输入小部件中. 如果在第二个输入小部件中都选择了,那么只有所有品牌都应该作为第三个输入小部件的选项。
我正在努力解决这些问题,也无法以任何其他方式做到这一点。
请建议。
library(shiny)
library(DT)
ui <- shinyUI(fluidPage(
tabsetPanel(
tabPanel("Data", fluid = TRUE,
sidebarLayout(
sidebarPanel(p("Please remove None first"),
uiOutput("dim"),
uiOutput("levels1")),
mainPanel(
DT::dataTableOutput("data_display")
))))))
server <- shinyServer(function(input,output){
# creating Data
data <- reactive({
data <- data.frame(Date = as.Date(c("2018-05-25","2018-05-26")),
category = c(rep("skin_care",6),rep("hair_care",6)),
Brand =
c("X","X","Y","Y","Z","Z","A","A","B","B","C","C"),sales =
round(rnorm(12,100,3)))
})
# Displaying Data
output$data_display <- DT::renderDataTable(
datatable(data(),options = list(pageLength = 12),rownames = FALSE)
)
# selects dimension (Only character variable to be selected)
output$dim<-renderUI({
b<-colnames(data()[sapply(data(),class)=="character"])
selectInput("x","Select only character variable",choices =
c("NONE",b[1:length(b)]),selected="NONE",multiple = TRUE)
})
# user selects levels of dimension
output$levels1<-renderUI({
if(is.null(input$x)){
return(NULL)
}
else if(sum(input$x=="NONE")==1){
return(NULL)
}
else{
lapply(seq(input$x),function(i){
selectInput(inputId = paste0("range",i),
paste0("Select level of ",input$x[i]),
choices = c(unique(data()[,input$x[i]]),"ALL"),multiple = TRUE)
})
}
})
})
shinyApp(ui,server)
解决方案
推荐阅读
- spring-boot - FF4j Web 控制台未正确显示
- php - 如何在 PHP 中将 3D (PSD2) 安全支付认证与 PayPal 集成
- android - 如何在 StaggeredGridLayout 中自定义放置项目?
- java - Google Ads API 提供的预测指标与网络 UI 中的预测指标完全不同
- sql - 是否可以找出用于在 SQL SERVER CLR 中加载程序集的原始路径?
- publish-subscribe - apache beam PubSub 在普通 pubsub 客户端库中读取 withIdAttribute 的替代方案
- c# - 使用 lambda 根据楼层数格式化我的字符串
- xaml - Blend For Visual Studio 2019 中缺少资源选项卡
- javascript - 如何让 url 参数出现在没有 php 的 html 页面上
- r - 在 ggplot2 函数中执行转换以产生负值