2016-09-01 4 views
0

저는 R에 상당히 익숙하며 Shiny에 더 새롭습니다. 나는 지금 내가 빛나는 것으로 변환하고 싶은 R 스크립트를 가지고 있지만 나는 항상 실패한다.Shiny R - 모델에 대한 새로운 data.frame 만들기

"Basisdaten.csv"에 저장되는 Wanddicke, T1, T2, T2star, ADC, Vivo 변수가있는 데이터 집합이 있습니다. 또한 결과 (0 또는 1)를 정의하는 변수 DSS가 있습니다. "DSS"를 예측하기 위해이 파일을로드하고이 데이터 세트로 GLM 모델을 교육해야합니다. 그런 다음 사용자에게 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) 


}) 
+0

를 기본 값은해야 빈 문자열 대신 숫자 여야합니다. –

+0

어떤 방법으로 실행되지 않습니까? 오류가 있습니까? –

답변

0

다음 코드는 작동합니다.
매우 가난한 CSV 파일로 인해 샘플링을 추가했습니다 ...

콘솔에서 보았을 때 활성 반응 컨텍스트가 없으면 작동에 대해 불만을 표시하는 사람이있을 수 있습니다.
당신이 흥미 찾을 수 있습니다하십시오`numericInput`를 들어 http://shiny.rstudio.com/articles/reactivity-overview.html

CSV

Wanddicke,T1,T2,T2star,ADC,Vivo,DSS 
10,2,3,4,5,6,0 
20,4,6,8,10,12,1 

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) { 

    output$Score <- renderText({ 

    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") 
    mydatanew$Score + sample(1:100, 1) 
    }) 
}) 

ui.R

library(shiny) 
shinyUI(fluidPage(

    # Application title 
    titlePanel("Colitis Evaluator"), 

    # Sidebar 
    sidebarLayout(
    sidebarPanel(
     numericInput("Dicke", 
        "Wanddicke in mm:", 
        10), 
     numericInput("T1", 
        "T1 in ms:", 
        1), 
     numericInput("T2", 
        "T2 in ms:", 
        2), 
     numericInput("T2star", 
        "T2* in ms:", 
        3), 
     numericInput("ADC", 
        "ADC in 10^-6 mm^2/s", 
        4), 
     numericInput("Vivo", 
        "In Vivo als 1", 
        0), 

     # selectInput("Vivo", "In vivo/Ex vivo:", 
     #    choices = c("In vivo" = 1, "Ex vivo" = 0)) 

     submitButton("Submit") 

    ), 


    mainPanel(

     textOutput("Score") 


    ) 
) 
)) 
+0

친애하는 모두, 답장을 보내 주셔서 감사합니다. 불행히도, tokiloutok의 수정으로도 작동하지 않습니다. "Run"을 클릭 할 때 사용자 인터페이스가 1 초도 채 안되는 것을 보았습니다.하지만 아무 것도 할 수 없기 전에 다시 닫힙니다. 오류 메시지가 없습니다. –

+0

은 반짝이는 파일과 같은 폴더에있는 CSV 파일입니까? 평범한 R (oustide shiny)에서 코드를 실행할 수 있습니까? 콘솔에 오류가 있습니까? – tokiloutok

+0

나는 그것을 얻었다 ... 그것은 라인에 의한 것이었다 Basisdaten <- read.table ("Basisdaten.csv", 헤더 = TRUE, sep = ",", na.strings = "NA", dec = "." , strip.white = TRUE) 구분 기호는 ";"입니다. 아닙니다 "," 도움과 노력에 감사드립니다 !! –