私は光り輝いていますが(Rではない)、ユーザーがテーブルから特定の行を選択してcsvファイルに書き出すアプリケーションを開発しています。本質的に減少したこの表には、2つの要因の列と1つの反応の列があります。例えば Rシャイニー - ラジオボタンとチェックボックスからの入力をまとめました
、もともと、私は、ユーザーが、彼らがエクスポートする行を選択するために使用することができdataFactor2列の値に基づいて、サイドバーにあるチェックボックスを持っていた場所に設定アプリを持っていました。たとえば、dataFactor2 == A、G、およびJのテーブル行をエクスポートするように選択できます。ただし、dataFactor1およびdataFactor2レベルが大量の場合は扱いにくくなりました。
私の考えは、dataFactor1のレベルにラジオボタンを追加することでした。次に、dataFactor1 == Xのラジオボタンを選択した場合、A、B、Cのチェックボックスが表示され、テーブルにはdataFactor1 == Xの行のみが表示されます。 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