【发布时间】:2016-09-01 21:38:52
【问题描述】:
我对 R 很陌生,对 Shiny 甚至更陌生。 我有一个 R 脚本,现在我想将其转换为 Shiny,但我总是失败。
我有一个包含变量 Wanddicke、T1、T2、T2star、ADC、Vivo 的数据集,它保存在“Basisdaten.csv”中。此外,还有一个变量 DSS 定义了结果(0 或 1)。 我希望加载此文件,并应使用此数据集训练 GLM 模型以预测“DSS”。 然后我想让用户有机会为 Wanddicke、T1、T2、T2star、ADC、Vivo 输入自己的参数,并且我希望 Shiny 返回预测。
这是我到目前为止所拥有的,但由于我不明白的原因,它不会运行。有人能告诉我我的错误在哪里吗?我怀疑在生成新的data.frame“mydatanew”期间会出现问题。提前非常感谢。
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)
})
【问题讨论】:
-
对于
numericInput,默认值应该是数字而不是空字符串。 -
什么情况下不运行?你有错误吗?