我想在我閃亮的應用顯示一個僅積:如果我動態選擇,閃亮的應用程序必須顯示plot(c(1:3))
,否則閃亮的應用程序必須顯示一個grViz類對象。renderPlot到renderUI - 類型的錯誤對象「關閉」不subsettable
library(shiny)
runApp(list(
ui = fluidPage(
uiOutput("optionsplots"),
uiOutput("plot")),
server = function(input, output) {
output$optionsplots <- renderUI({
selectInput("options", "Options to plot:",choices=c("A","B"))
})
output$plot <- renderUI({
if(input$options == 'A'){renderPlot({plot(c(1:3))})}
else{renderGrViz({grViz("digraph boxes_and_circles {
# a 'graph' statement
graph [overlap = true, fontsize = 10]
# several 'node' statements
node [shape = box,
fontname = Helvetica]
A; B; C; D; E; F
node [shape = circle,
fixedsize = true,
width = 0.9] // sets as circles
1; 2; 3; 4; 5; 6; 7; 8
# several 'edge' statements
A->1 B->2 B->3 B->4 C->A
1->D E->A 2->4 1->5 1->F
E->6 4->6 5->7 6->7 3->8
}")})}
})
}
),launch.browser = T)
錯誤:類型的對象 '閉合' 不是subsettable
一種可能的解決方案將在ui.R plotOutput("plot")
在投入(用於繪製繪圖(C(1:3)))和grVizOutput("plot2")
(用於繪製grviz對象),但我不希望它,因爲如果我不選擇選項「A」(或其他),我的閃亮應用程序中會有一個空白區域。
是的,這對於上一個問題是完美的。 我剛剛修改了這個問題,並且更好地解釋了它。對不起,謝謝 –
它的工作原理,謝謝!一個問題,如果我有興趣把!= A在條件範圍內,我應該如何修改代碼'conditionalPanel(condition =「['A'] .indexOf(input.options)> = 0」,plotOutput(outputId = 'plot1'))'? –
很高興幫助。 '.indexOf()'是一個JavaScript方法。如果'inputs.options'不在列表'['A']'中,它將返回-1。所以你可以說'conditionalPanel(condition =「['A']。indexOf(input.options)== - 1」,plotOutput(outputId ='plot1'))'。如果你有一個列表(不只是A),那麼使用這種方法是有用的。你可以說'input.options!='A'' – danielson