Shinyの反応性に問題があります。私のUIにおいて、IはR selectInput反応性の問題
library(tidyverse)
library(shiny)
library(forcats)
ui <- fluidPage(
titlePanel(h1("Percent Cover")),
selectInput("selectInput", "Select Site", choices = c("A", "B", "C", "D")),
plotOutput("coverTypeBarChart", height = "600px")
)
これらは私がサーバーの上部で読み込んだデータフレームA、B、C、Dに対応しています。私のサーバーで
、私が持っている:
colors <- c("red", "blue", "green", "purple")
reactive({
if (input$selectInput == "A")
{data <- A}
else if (input$selectInput == "B")
{data <- B}
else if (input$selectInput == "C")
{data <- C}
else if (input$selectInput == "D")
{data <- D}
})
data() <- na.omit(as.data.frame(data()$cover_group))
names(data()) <- c("tmp")
cover_group_factor <- as.factor(data()$tmp)
cover_group_factor <- fct_recode(cover_group_factor, OTHER = "E", OTHER = "F", OTHER = "G", OTHER = "H", OTHER = "I", OTHER = "J", OTHER = "K")
bar <- ggplot(data = data()) +
geom_bar(mapping = aes(x = cover_group_factor, y = ..count../sum(..count..)), fill = colors) + xlab("Cover Group") + ylab("Percent")
observe({
output$coverTypeBarChart <- renderPlot(bar)
})
}
私は手動での値のいずれかにデータを割り当て、手動でコードを実行したとき、私はプロットを生成することができます知っているので、私はそれが反応性の問題を知っています。
ありがとうございました。
私はデータフレームの例がないのであまり言い表せません。しかし、私が見ていることから、あなたの反応機能に何かをつけていることはわかりません。あなたは次のことを言う必要がありますか? 'データ< - 反応({ (入力の$ selectInput == "A") {データ<場合 - そうA} (入力が$ selectInput == "B" であれば) {データ< - B} (入力$ selectInput == "C") {データ< - C} else if(入力$ selectInput == "D") {データ< - D} }) ' – p0bs