このパッケージのドキュメントがどれほど疎かになっているのか、私は本当にショックを受けました。
get_selected()
は、GitHub codeに示すように、ベクトルを返します。私はformat = "slices"
を使用するつもりです。 I.1.2を選択すると
library(shiny)
library(shinyTree)
ui <- shinyUI(
shiny::fluidPage(
h4('Shiny hierarchical checkbox'),
shinyTree("tree", checkbox = TRUE),
# table of weights
fluidRow(column("",
tableOutput("Table"), width = 12,
align = "center"))
)
)
server <- shinyServer(function(input, output, session) {
output$tree <- renderTree({
sss=list( 'I lorem impsum'= list(
'I.1 lorem impsum' = structure(list('I.1.1 lorem impsum'='1', 'I.1.2 lorem impsum'='2'),stopened=TRUE),
'I.2 lorem impsum' = structure(list('I.2.1 lorem impsum'='3'), stopened=TRUE)))
attr(sss[[1]],"stopened")=TRUE
sss
})
output$Table <- renderPrint({
names(as.data.frame(get_selected(input$tree, format = "slices")))
})
})
shinyApp(ui, server)
:
は、次のコードを考えてみましょう。 Loremののimpsumは、以下が返されます。
これは、列名を持つ長さ1のベクトルです。スペースの代わりにドットが使用されていることに注意してください。
我々はこれが選択されている場合4
に等しい変数x
を設定したい場合はこのように、我々はI.1.2.lorem.impsum
は上記names
であるかどうかを確認して、割り当てを実行する必要があります。所望に応じて
与え
library(shiny)
library(shinyTree)
ui <- shinyUI(
shiny::fluidPage(
h4('Shiny hierarchical checkbox'),
shinyTree("tree", checkbox = TRUE),
fluidRow(column("",
tableOutput("Table"), width = 12,
align = "center")),
fluidRow(column("",
tableOutput("Table2"), width = 12,
align = "center"))
)
)
server <- shinyServer(function(input, output, session) {
output$tree <- renderTree({
sss=list( 'I lorem impsum'= list(
'I.1 lorem impsum' = structure(list('I.1.1 lorem impsum'='1', 'I.1.2 lorem impsum'='2'),stopened=TRUE),
'I.2 lorem impsum' = structure(list('I.2.1 lorem impsum'='3'), stopened=TRUE)))
attr(sss[[1]],"stopened")=TRUE
sss
})
x <- reactive({
if('I.1.2.lorem.impsum' %in% names(
as.data.frame(
get_selected(
input$tree, format = "slices")))){
x <- 4
}
})
output$Table <- renderPrint({
names(as.data.frame(get_selected(input$tree, format = "slices")))
})
output$Table2 <- renderTable({
as.data.frame(x())
})
})
shinyApp(ui, server)
。
真剣に、なぜdownvoteですか?私はこの問題を解明しようと努力してきました。 – Clarinetist