EDIT NULL sein: Ok, ich habe ein Problem etwas zu lösen und das Problem ist nicht in der if(boolean)
Aussage, es ist eigentlich in meiner filter()
Anweisung innerhalb der if()
Aussage:Shiny: if-Anweisung mit Eingangsgröße in server.R könnte
bar_mcgun <- bar_mcgun %>% filter(region == input$area)
input$area
kehrt NULL
. area
ist eine inputid
Variable in der folgenden renderUI()
Aussage:
output$region <- renderUI({
selectInput(inputId = "area", label = "Choose a region:", choices = c("Midwest", "Northeast",
"South Central", "South Atlantic", "West"), selected = "Northeast")
})
Es scheint, dass input$area
aus irgendeinem Grund verborgen ist. Bitte helfen Sie.
Ich bekomme auch die folgende Fehlermeldung, wenn ich versuche input$location
zu nennen:
Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.)
ich aus RStudio schon seit den letzten 3 Stunden gekickt versuchen, eine App zu laufen. Ich bin ziemlich sicher, dass der Fehler etwas mit der Verbindung zwischen dem radioButtons()
in meiner ui.R-Datei und dem if-statements
in meiner server.R-Datei zu tun hat.
Ich überprüfte meine Protokolldatei und ich sehe 'Null ist kein Objekt'. Ich isolierte den Code, um zu überprüfen, ob es einen Fehler mit read.csv2
und den folgenden Datenmanipulationen gab, aber alles zeigt sich.
Bitte lassen Sie es mich wissen, wenn Sie eine Idee haben, woher die 'Null' kommt.
ui.R
shinyUI(fluidPage(
titlePanel("McGun"),
sidebarLayout(
sidebarPanel(
helpText("Look at number of Gundealers, McDonald's, hospitals, and/or Population of states by region:"),
radioButtons('view', 'View U.S.A data according to state or region:', c('states', 'regions'), 'regions'),
conditionalPanel(
"input.view == 'states'",
uiOutput('state')
),
conditionalPanel(
"input.view == 'regions'",
uiOutput('region')
),
checkboxGroupInput("data",
label = "Data of interest:",
c('population','gundealers', "mcdonalds", 'hospitals'),
c('population','gundealers', "mcdonalds", 'hospitals')),
selectInput('pop', 'Population by:', c('1000', '10000', '100000'), '10000')
),
mainPanel(
plotOutput('barplot')
)
)
))
server.R
mcgun <- read.csv2("data/mcgun.csv2")
library(ggplot2)
library(dplyr)
library(reshape2)
location <- state.abb
location[51] <- 'DC'
location <- sort(location)
shinyServer(function(input, output) {
output$state <- renderUI({
selectInput(inputId = 'location',label = 'Choose a state:', choices = location, selected = location[1])
})
output$region <- renderUI({
selectInput(inputId = "area", label = "Choose a region:", choices = c("Midwest", "Northeast",
"South Central", "South Atlantic", "West"), selected = "Northeast")
})
output$barplot <- renderPlot({
scale_mcgun <- mcgun %>% mutate(population = round(population/as.integer(input$pop)))
scale_mcgun <- melt(scale_mcgun, id.vars = c('state', 'region'))
scale_mcgun <- scale_mcgun %>% arrange(state, variable)
if(is.null(input$data)==T){return()}
bar_mcgun <- data.frame()
for(i in 1:length(input$data)){bar_mcgun <- rbind(bar_mcgun, filter(scale_mcgun, variable == input$data[i]))}
if(input$view == 'regions'){
bar_mcgun <- bar_mcgun %>% filter(region == input$area)
ggplot(bar_mcgun, aes(state, value, fill = as.factor(variable))) +
geom_bar(stat = 'identity', position = 'dodge')
}
if(input$view == 'states'){
bar_mcgun <- bar_mcgun %>% filter(state == input$location)
ggplot(bar_mcgun, aes(state, value, fill = as.factor(variable))) +
geom_bar(stat = 'identity', position = 'dodge')
}
})
})
Vielen Dank für Ihre Zeit.
Könnte es sein, dass die Rückkehr() verwendet eine NULL zu plotOutput Retuns ('BarPlot'). Gibt es mehr Kontext in Ihrer Protokolldatei? –
Ich bin mir ziemlich sicher, dass 'return()' nur ein leeres 'mainPanel()' zurückgibt. Ich habe es dort eingefügt, für den Fall, dass keines der Kontrollkästchen angeklickt wurde. – beemyfriend
Ich verstehe auch nicht, wie man Log-Dateien liest, es war sehr groß und ich habe noch nie zuvor eine Log-Datei angeschaut. Die einzige Information, die herausragte, war Java: Null ist kein Objektfehler – beemyfriend