私は、ユーザーの入力を受け取り、後でそれに基づいてプロットを作成する小さな光沢のあるアプリケーションを持っています。 これまでのところ私のサイドバーは次のようになります:Shiny:checkboxGroupinputのグループを検証する
ここで、6つのオプションのうちの1つがクリックされているかどうかを確認するために "validate"を使用したいと思います。
これまでのところ、私のコードでは赤の色だけがチェックされています。
また、1つのボックス(果物など)を持つ方法がある場合は、 が自動的にチェックされているのでしょうか。たとえば、アプリを起動するAppleは事前に選択されていますが、クリックを解除すると自動的にバナナ(またはCitrus)が選択されます。検証の代わりにこのアプローチを使用するソリューションはありますか?
library(shiny)
library(ggplot2)
library(plotly)
library(data.table)
library(DT)
library(shinyjs)
ui <- shinyUI(fluidPage(
tabsetPanel(
tabPanel("Upload",
sidebarLayout(
sidebarPanel(width = 4,
fileInput('file1', 'Choose CSV File',
accept=c('text/csv',
'text/comma-separated-values,text/plain',
'.csv')),
#tags$hr(),
checkboxInput('header', 'Header', TRUE),
radioButtons('sep', 'Separator',
c(Comma=',',
Semicolon=';',
Tab='\t'),
',')
),
mainPanel(dataTableOutput('table1')
))
),
tabPanel("fruits",
sidebarLayout(
sidebarPanel(width = 4,
uiOutput("fruitTable")
),
mainPanel(dataTableOutput('table2')
)))
)))
server <- shinyServer(function(input, output) {
file_data <- reactive({
fruit_file1 <- input$file1
if(is.null(fruit_file1)){
return(NULL)
}else{
fruits <- fread(fruit_file1$datapath, header=input$header, sep=input$sep, check.names = FALSE)
return(fruits)
}
})
output$table1 <- renderDataTable({
if(is.null(file_data())){
return(NULL)
}else{
datatable(file_data(),options = list(pageLength = 25))
}
})
output$table2 <- renderDataTable({
if(is.null(file_data())){
return(NULL)
}else{
validate(
need(input$fruit, 'Check at least one fruit!'),
need(input$stim, 'Check at least one fertilizer!'),
need(input$marker1, 'Check at least one color!')
datatable(file_data(),options = list(pageLength = 25))
}
})
output$fruitTable <- renderUI({
if(is.null(file_data())){
return()
}else{
tagList(
checkboxGroupInput(inputId = "fruit",
label = "Fruit",
choices = c("Apple", "Banana", "Citrus")),
radioButtons(inputId = "month",
label = "Month",
choices = c("1"= 1, "9" = 2, "12" = 3),
selected = 1,
inline = TRUE),
checkboxGroupInput(inputId = "stim",
label = "Stimulation",
choices = list("A","B", "C")),
#choices = c(unique(as.character(file_data()[,3])))),
checkboxGroupInput(inputId = "marker1",
label = "red",
choices= list("+", "-"),
#choices = c(unique(as.character(file_data()[,4]))),
inline = TRUE),
checkboxGroupInput(inputId = "marker2",
label = "green",
choices= list("+", "-"),
#choices = c(unique(as.character(file_data()[,5]))),
inline = TRUE),
checkboxGroupInput(inputId = "marker3",
label = "yellow",
choices= list("+", "-"),
#choices = c(unique(as.character(file_data()[,6]))),
inline = TRUE)
)
}
})
})
shinyApp(ui = ui, server = server)
と私が使用しfileへのリンク:
は、ここに私のコードです。あなたは果物にタブを切り替えるために必要なファイルをアップロードした後
。(私はまだ考え出したていない、自動的にタブがアップロードした後に切り替えている方法)助けるため
ありがとう!
を私はあなたのソリューションで私のポストを更新し、グループとしての色をフィルタリングする方法を知っていただきたいと思います。入力がNULLでない場合は、選択されている表の行を選択します。 'if(!is.null(input $ marker1)|!is.null(input $ marker2)|!is.null(input $ marker3)){ #????それはフルーツと肥料のために働いていますが、私はそれを全カラーグループで行うことはできません。ありがとう! – Rivka
ねえ、最初の質問にあまり関係ないので、新しい質問を投稿するべきだと思います。あなたは新しい質問に私を参照することができ、私は助けることができます.. – BigDataScientist
私はそれを自分で考え出しました。 – Rivka