Передача значения input $ variable в качестве аргумента в Rshiny для вызова внешнего скрипта - PullRequest
0 голосов
/ 14 мая 2018
Используемый блестящий код

R:

library(shiny)
library(shinyBS)
ui <-  fluidPage(
  headerPanel( list(tags$head(tags$style("body {background-color: #F4F6F6 ; }")))),
  titlePanel("RADP CR Prediction Tool"),
  br(),
  tags$head(tags$script(src = "message-handler.js")),
  textInput('Region', label = 'Enter the region'),
  textInput('Regulatory', label = 'Enter the regulatory status'),
  textInput('Description', label = 'Enter the description for the CR'),
  br(),
  br(),
  actionButton("goButton", "Go!"),
  mainPanel(textOutput('region'),textOutput('description')),
  bsModal("modalExample", "Your summary", "goButton", size = "large",dataTableOutput("data_summary"))
     )

server <- function(input,output,session) {
  #observe the add click and perform a reactive expression
  observeEvent( input$goButton,{
    x <- input$Region
    y <- input$Regulatory
    z<- input$Description
    print (x)
    system("/Users/ravinderbhatia/anaconda/bin/python /Users/ravinderbhatia/Downloads/Untitled3.py input[[x]] ,'y', 'z'")
    MyData <- read.csv(file="/Users/ravinderbhatia/Downloads/data.csv", header=TRUE)
    #reactive expression
    output$region <- renderPrint(x)
    output$description <-renderPrint(y)
    output$data_summary <- renderDataTable({
      MyData
    })
  }
  )
}

shinyApp(ui, server)

Проблема в следующей строке:

 system("/Users/ravinderbhatia/anaconda/bin/python /Users/ravinderbhatia/Downloads/Untitled3.py x,y,z")

Как передать фактическое значение региона в системном вызове.Здесь print (x) работает нормально, но когда я передаю x в качестве аргумента, я хочу передать значение, хранящееся в нем. (Input $ region)

1 Ответ

0 голосов
/ 14 мая 2018

Ну, например, вы просто передаете символ x в систему, и он, вероятно, понятия не имеет, что с этим делать.

Что если вы изменили эту строку:

system("/Users/ravinderbhatia/anaconda/bin/python /Users/ravinderbhatia/Downloads/Untitled3.py input[[x]] ,'y', 'z'")

до:

system(paste("/Users/ravinderbhatia/anaconda/bin/python /Users/ravinderbhatia/Downloads/Untitled3.py", x, y, z))

просто попробуйте те несколько строк, где я заменил "system" на "print"

x= "desc"
y= "region"
z= "etc"
print("/Users/ravinderbhatia/anaconda/bin/python /Users/ravinderbhatia/Downloads/Untitled3.py input[[x]] ,'y', 'z'")
print(paste("/Users/ravinderbhatia/anaconda/bin/python /Users/ravinderbhatia/Downloads/Untitled3.py", x, y, z))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...