1
Ich brauche Hilfe Ich bin ein Neuling in Shiny Welt und stecken in etwas, das sehr einfach sein könnte. Hier ist mein ui.R und server.R CodeNicht-numerisches Argument zum binären Operator in Shiny
shinyUI(
pageWithSidebar(
headerPanel("Hello Shiny R..."),
sidebarPanel(
sliderInput(inputId="age", label="Age", min=1, max=99, value=24, step=1, animate=TRUE),
numericInput(inputId="height", label="Height (cm)", min=0, max=300, value=160, step=5),
numericInput(inputId="weight", label="Weight (kg)", min=0, max=500, value=100, step=5),
radioButtons(inputId="gender", label="Gender", choices=c("Male", "Female"), selected="Male", inline=TRUE),
textInput(inputId="name", label="Full Name"),
submitButton(text="Apply")
),
mainPanel(
h1("BMI Calculator"),
p("Name:"),
textOutput("name"),
p("Age:"),
textOutput("age"),
p("Gender:"),
textOutput("gender"),
p("BMI:"),
textOutput("bmi")
)
)
)
shinyServer(
function(input, output) {
output$name <- renderText({input$name})
output$age <- renderText({input$age})
output$gender <- renderText({input$gender})
weight <- renderText({as.numeric(input$weight)})
height <- renderText({as.numeric(input$height)})
output$bmi <- weight/(height * height)
}
)
Wenn ich runapp() ausführen, hier ist was ich bekomme:
Error in height * height : non-numeric argument to binary operator
Es ist nichts falsch mit 'renderText', aber die Art, wie Sie es sehen. Sie versuchen damit zu rechnen, als wäre es eine Zahl. Aber es ist nicht. Wenn Sie 'class (renderText ({}))' versuchen, werden Sie sehen, dass sein Typ 'function' ist. –
Ja, das erklärt es. Wenn Sie es wie Ausgabe $ bmi <- renderText ({Eingabe $ Gewicht/Eingabe $ Höhe * Eingabe $ Höhe}) verwenden, löste es für mich. Dank ein paar Kumpel ... –