Ich bin ziemlich neu zu R und noch neuer zu Shiny. Ich habe ein R-Skript, das ich jetzt in Shiny konvertieren möchte, aber ich scheitere immer.Shiny R - Erstellen eines neuen data.frame für ein Modell
Ich habe einen Datensatz mit den Variablen Wanddicke, T1, T2, T2star, ADC, Vivo, der in "Basisdaten.csv" gespeichert ist. Zusätzlich gibt es eine Variable DSS, die das Ergebnis definiert (entweder 0 oder 1). Ich möchte, dass diese Datei geladen wird und ein GLM-Modell mit diesem Datensatz trainiert werden soll, um "DSS" vorherzusagen. Dann möchte ich dem Benutzer eine Chance geben, eigene Parameter für Wanddicke, T1, T2, T2star, ADC, Vivo einzugeben, und ich möchte, dass die Vorhersage von Shiny zurückgegeben wird.
Das habe ich bis jetzt, aber aus Gründen, die ich nicht verstehe, wird es nicht laufen. Kann mir jemand sagen, wo meine Fehler sind? Ich vermute, dass das Problem bei der Erstellung des neuen data.frame "mydatanew" auftritt. Vielen Dank im Voraus.
UI.R
library(shiny)
shinyUI(fluidPage(
# Application title
titlePanel("Colitis Evaluator"),
# Sidebar
sidebarLayout(
sidebarPanel(
numericInput("Dicke",
"Wanddicke in mm:",
""),
numericInput("T1",
"T1 in ms:",
""),
numericInput("T2",
"T2 in ms:",
""),
numericInput("T2star",
"T2* in ms:",
""),
numericInput("ADC",
"ADC in 10^-6 mm^2/s",
""),
numericInput("Vivo",
"In Vivo als 1",
""),
# selectInput("Vivo", "In vivo/Ex vivo:",
# choices = c("In vivo" = 1, "Ex vivo" = 0))
submitButton("Submit")
),
mainPanel(
textOutput("Score")
)
)
))
Server.R
library(shiny)
Basisdaten <- read.table("Basisdaten.csv", header=TRUE, sep=";", na.strings="NA", dec=".", strip.white=TRUE)
model.glm <- glm(formula=DSS==1 ~ Wanddicke + T1 + T2 + T2star + ADC + Vivo + (Wanddicke+T1+T2+T2star+ADC+Vivo)^3,family=binomial(),data=Basisdaten,na.action=na.omit)
shinyServer(function(input, output) {
mydatanew <- data.frame(Wanddicke=input$Dicke,T1=input$T1,T2=input$T2,T2star=input$T2star,ADC=input$ADC,Vivo=input$Vivo)
mydatanew$Score <- predict(model.glm, newdata=mydatanew, type="response")
output$Score <- renderText(mydatanew$Score)
})
Für einen 'numericInput', der Standardwert sollte
csv:
Sie diese interessant finden Sei eine Zahl anstelle einer leeren Zeichenfolge. –
In welcher Weise läuft es nicht? Erhalten Sie einen Fehler? –