Więc w zasadzie próbuję opracować interfejs użytkownika, w którym osoba mogłaby wybrać tak lub nie, jeśli mają chorobę w polu wyboru. Potem zajmie to, że tak / brak odpowiedzi na każdą odpowiednią chorobę i utwórz ramkę danych, dzięki czemu może być renderowana tabela daty, a osoba może zobaczyć ich odpowiedzi. Walczą z próby pobierania tego, co jest klikane w polu wyboru i wprowadzenie go do ramki danych z chorobami, które stworzyłem inną ramy daty w kodowaniu. Próbowałem teraz kilka rzeczy, a teraz mówi, że obiekt "Data1", "palenie" i "diabetory" nie można znaleźć, gdy próbuję utworzyć ramkę danych z tego, co wybrał użytkownik. Wydaje się, że moje, jeśli / inaczej stwierdzenie nie działa. Poniżej znajduje się mój kod

library(shiny)
library(DT)

# Define UI for application that draws a histogram
ui <- fluidPage(

    # Application title
    titlePanel("IVD"),

    
    sidebarLayout(
        sidebarPanel(
            checkboxGroupInput("Diabete", "Diabetes:",
                              choices =  c("Yes" = "yes0",
                                 "No" = "no0")),
            checkboxGroupInput("Smoke", "Smoking:",
                               c("Yes" = "yes1",
                                 "No" = "no1"))),

        
        mainPanel(
            fluidRow(actionButton("button", "Click for Risk Prediction")),
            dataTableOutput("summary_table")
        )
    )
)

# Define server logic required to draw a histogram
server <- function(input, output) {

 
observeEvent(input$button, { 
output$summary_table<-renderDataTable({
    a<- eventReactive(input$Diabete, {   
        if (input$Diabete == "yes0") {
            a=1
        } else {
            a=0
        }})
    b<- eventReactive(input$Smoke, {   
        if (input$Diabete == "yes1") {
            b=1
        } else {
            b=0
        }})
    ivd<-c('Diabetes','Smoking')
    #data<- c(11,10,sugar,8,7,6,5,4,3,2,1)
    values <- reactiveValues()
    values$ivd <- data.frame()
    eventReactive(input$Diabete, {
        diabetes <- a
        smoking <- b
        
        da <- data.frame(diabetes, smoking)
        
        data1 <- rbind(values$ivd, da)
    })
    ivd_data<-data.frame(ivd,data1,stringsAsFactors=FALSE )
    print(ivd_data)   
})
})
}

# Run the application 
shinyApp(ui = ui, server = server)
0
Janae Bradley 27 październik 2020, 07:26

1 odpowiedź

Najlepsza odpowiedź

Spróbuj tego

# Define UI for application that draws a histogram
ui <- fluidPage(
  
  # Application title
  titlePanel("IVD"),
  
  
  sidebarLayout(
    sidebarPanel(
      checkboxGroupInput("Diabete", "Diabetes:",
                         choices =  c("Yes" = "yes0",
                                      "No" = "no0")),
      checkboxGroupInput("Smoke", "Smoking:",
                         c("Yes" = "yes1",
                           "No" = "no1"))),
    
    mainPanel(
      fluidRow(actionButton("button", "Click for Risk Prediction")),
      DTOutput("summary_table")
    )
  )
)

# Define server logic required to draw a histogram
server <- function(input, output) {
  
  
  observeEvent(input$button, { 
    
    a<- eventReactive(input$Diabete, {   
      a = ifelse(input$Diabete == "yes0",1,0) 
      })
    
    b<- eventReactive(input$Smoke, {   
      b = ifelse(input$Smoke == "yes1",1,0) 
      })
    
    ivd<- data.frame(a='Diabetes',b='Smoking')
    
    data1 <- reactive({
      data <- rbind(ivd,data.frame(a=a(),b=b()))
    })
    
    output$summary_table <- renderDT(data1())
    
  })
}

# Run the application 
shinyApp(ui = ui, server = server)
0
YBS 27 październik 2020, 17:38