Сюжет свм картинки с использованием ршины - PullRequest
0 голосов
/ 23 октября 2018

Я учу Ршины.Я хотел бы построить изображение с двумя переменными.Я не уверен, как это сделать.Ниже приведен мой код:

Интерфейс пользователя

library(shiny)

# Define UI ----
fluidPage(

fluidRow(

  selectInput("var1", 
           label = h3("Variable1"), 
            choices=c("age",
                        "sex",
                        "cp","
                         chol",
                         "fbs",
                         "exang",
                         "thalach",
                         "restecg",
                         "oldpeak",
                         "trestbps",
                          "class"),
                  selected ="age"),
                 hr()

   ),  

 fluidRow(

   selectInput("var2", 
            label = h3("Variable2"), 
            choices=c("age",
                        "sex",
                        "cp","
                         chol",
                         "fbs",
                         "exang",
                         "thalach",
                         "restecg",
                         "oldpeak",
                         "trestbps",
                          "class"),
                  selected ="cp"),
                  hr()
   ),

mainPanel(
 textOutput("selected_var1"),
 textOutput("selected_var2")
 plotOutput(outputId="img")

 )   

) 

Затем источник серверной библиотеки (блестящий) ('svm.R')

server <- function(input, output){

     dataInput <- reactive({


        if (!input$var1==input$var2){

        output$selected_var1<- renderText({ 
         paste("You have selected", input$var1)

        })


        output$selected_var2<- renderText({ 
        paste("You have selected", input$var2)

          })
       output$img <- renderPlot({

        var1<-input$var1
        var2<-input$var2
       plot(data$var,data$var2,color=c(28,32))
      })

      }else{
     break
     }
  })

 } 


I want to solve two problems now:
 1. How could I got the plotted picture?
 2. I know there are repeat code in the UI part. How could I improve it?

Спасибо!Я вставил этот код в ссылку на github: https://github.com/testCodeSand/test/tree/master

Последнее, я прикрепляю картинку ссылка , чтобы показать вам, что я пытаюсь сделать, пользователь выбирает две переменные иСервер использует эти две переменные для построения изображения.Я получаю сообщения об ошибках, например, Ошибка в .getReactiveEnvironment () $ currentContext (): Операция не разрешена без активного реактивного контекста.(Вы пытались сделать что-то, что можно сделать только из реактивного выражения или наблюдателя.)

Update: I just added reactive but it did not show any output

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

UI

библиотека (блестящая)

Define UI

fluidPage(

fluidRow(

  selectInput("var1", 
            label = h3("Variable1"), 
            choices=c("age",
                      "sex",
                      "cp",
                      "chol",
                      "fbs",
                      "exang",
                      "thalach",
                      "restecg",
                      "oldpeak",
                      "trestbps",
                      "class"),
             selected ="age"),
   hr()

 ),  

fluidRow(

   selectInput("var2", 
            label = h3("Variable2"), 
            choices=c("age",
                      "sex",
                      "cp",
                      "chol",
                      "fbs",
                      "exang",
                      "thalach",
                      "restecg",
                      "oldpeak",
                      "trestbps",
                      "class"),
             selected ="cp"),
              hr()

),

mainPanel(
  textOutput("selected_var1"),
  textOutput("selected_var2"),
  plotOutput(outputId="img"),
  hr(),
  actionButton("go", "Go"),
  textOutput(outputId="info")

)   

) #

Сервер

библиотека (блестящий) источник ('svm.R')

сервер <- функция (вход, выход) {</p>

randomVals <- eventReactive(input$go, {
  runif(data[input$var1], data[input$var2])
})


#Assign reactive variables
var1<-reactive({input$var1})
var2<-reactive({input$var2})

#Output reactive variables
output$selected_var1<- renderText({ 
  paste("You have selected", var1())
})
hr()
output$selected_var2<- renderText({ 
  paste("You have selected", var2())
})

output$img <- renderPlot({

    if(var1()!=var2()){
      var1<-data[input$var1]
      var2<-data[input$var2]
      df<-data.frame(var1,var2)
      plot(df,col=c(28,32))
      #plot(randomVals())
}else{
  output$Info<-renderText("Please select a different variable")
 }
})
} 
0 голосов
/ 23 октября 2018

Это полный код, необходимый для создания вашего примера, обратите внимание, что мы используем shinyalert для всплывающего сообщения.Я создаю пример данных в этом примере

 library(shiny)
 library(shinyalert)

# Define UI ----
choices_list<-
c("age",
"sex",
"cp",
"chol",
 "fbs",
"exang",
"thalach",
"restecg",
 "oldpeak",
"trestbps",
"class")

#Test Data
col1<-c(1:5)
col2<-c(5:9)
col3<-c(10:14)
data<-data.frame(col1,col2,col3)
names(data)<-c("age","sex","cp")

#Ui
ui<-

fluidPage(

   fluidRow(

    selectInput("var1", 
                label = h3("Variable1"), 
                choices=choices_list,
                selected ="age"),
    hr()  
  ),  

  fluidRow(

    selectInput("var2", 
                label = h3("Variable2"), 
                choices=choices_list,
                selected ="cp"),
    hr()
  ),

  mainPanel(
    textOutput("selected_var1"),
    textOutput("selected_var2"),
    plotOutput(outputId="img"),
     useShinyalert()

  )   
) 

#Server
 server <- function(input, output){

  var1<-reactive({input$var1})
  var2<-reactive({input$var2})


  output$selected_var1<- renderText({ 
    paste("You have selected", var1())

  })


  output$selected_var2<- renderText({ 
    paste("You have selected", var2())

  })

  output$img <- renderPlot({

    if(var1()!=var2()){
    var1<-data[input$var1]
    var2<-data[input$var2]
    df<-data.frame(var1,var2)
    plot(df)
    }else{shinyalert("Warning","Please select non-duplicate paramaters")}
    })

} 


shinyApp(ui, server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...