我是新來閃亮(但不是R),並且正在構建一個應用程序,用戶從表中選擇特定的行以導出到csv文件。根據其基本要求,該表格有兩列因素和一列答覆。R閃亮 - 保存來自單選按鈕和複選框的組合輸入
例如,
我本來應用程序設置到用戶基於dataFactor2列,他們可以用它來選擇要導出的行中的值對側邊欄的複選框。 (例如,他們可以選擇導出dataFactor2 == A,G和J的錶行)。但是,對於大量的dataFactor1和dataFactor2級別而言,這很難實現。
我的想法是爲dataFactor1的級別添加單選按鈕。然後,如果您選擇了dataFactor1 == X的單選按鈕,您將獲得A,B和C的複選框,並且該表只會顯示dataFactor1 == X的行。您將選擇行A,B或C,那麼你會轉向Y和Z.在這個過程結束時,你仍然會導出與選定的dataFactor2級別相對應的行。
但是,當我嘗試以這種方式實現時,當我從一個級別的dataFactor1移動到另一個級別時,一切都會重置。有關如何捕獲所有選中框的建議?
下面示例代碼ui.R:
#ui.R
library(shiny)
myFactor1<-c("X", "Y", "Z")
myFactor2<-c() #initialize
shinyUI(fluidPage(
titlePanel("Sample"),
# Sidebar with radio buttons and checkboxes
sidebarLayout(
sidebarPanel(width=2,
#display radio button list of factor1 values
radioButtons("factor1",
label = "dataFactor1",
choices=myFactor1), #dynamically generate factor list
#display checkboxes of factor2 values
checkboxGroupInput("factor2",
label="dataFactor2",
choices=myFactor2) #dynamically generate list
),
# Show factor2 selections and table
mainPanel(
textOutput("text2"),
tableOutput("table2")
)
)
))
和server.R:
#server.R
library(shiny)
shinyServer(function(input, output, session) {
mydata<-data.frame(dataFactor1=c(rep("X", 3), rep("Y", 4), rep("Z", 5)),
dataFactor2=c("A", "B", "C", "D", "E", "F", "G", "H",
"I", "J", "K", "L"),
dataResponse=rnorm(12))
observe({
factor1Choice<-input$factor1
myFactor2_list<-mydata$dataFactor2[mydata$dataFactor1==factor1Choice]
updateCheckboxGroupInput(session, "factor2",
choices = myFactor2_list)
mydata2<-mydata[mydata$dataFactor1==factor1Choice,]
output$table2<-renderTable(mydata2)
observe({
factor2Choice<-input$factor2
output$text2<-renderText(factor2Choice)
})
})
})
我的[類似的問題(https://stackoverflow.com/questions/44478182/how-to-access-remember-unchecked-values-in-shiny)幾個星期前。 – lukeA