R блестящий - пользовательская функция печатает в главной панели - PullRequest
1 голос
/ 02 марта 2020

Я новичок в Shiny, и моя работа заключается в создании приложения для своего рода эконометрического моделирования c. Теперь я понял, что сам должен написать множество функций, а затем использовать их в приложении. Поэтому я решил создать тестовое приложение, и это простой калькулятор. Это мой ui.R:

library(shiny)


shinyUI(fluidPage(

  titlePanel(h4("TEST", align = "center")),
  sidebarLayout(
    sidebarPanel(textInput("no1", "Enter the first number"),
                 textInput("no2", "Enter the second number"),
                 radioButtons("op", "Select the operation", choices = c("+","-", "*", "/")),
                 submitButton("Calculate!"),
                 p("Click on the calculate button to perform the calculation.")
                 )

  ,


  mainPanel("Result is: ",

    textOutput("result")

    )
  )
)) 

, и это мой сервер. R

library(shiny)

    calculator <- function(num1, num2, op){
      if (is.na(num1) | is.na(num2) | is.na(op)) {
        "0"
      } else {
        if (op == "+") {
          num1 + num2
        } else if (op == "-") {
          num1 - num2
        } else if (op =="*") {
          num1 * num2
        } else if (num2 == 0) {
          "Cannot divide with 0!"
        } else {
          num1/num2
        }


      }


    }





    shinyServer(function(input, output){

      f <- reactive({
        as.integer(input$no1)
      })
      s <- reactive({
        as.integer(input$no2)
      })
      op <- reactive({
        input$op
      })

      output$result <- renderPrint(calculator(f(), s(), op()))



    })

У меня есть эта глупая функция калькулятора в server.R, которая выполняет вычисления, и в mainPanel в ui.R печатает результат. Все работает нормально, но вот скриншот самого приложения, где на главной панели я хочу от чего-то избавиться. app

Вы видите эту "1" в квадратных скобках рядом с моим результатом. В функции калькулятора у меня есть это первое условие, где я проверяю, являются ли некоторые параметры NA, потому что изначально было сказано « 1 » «NA». Я предполагал, что это дополнительное условие решит что-то, но это не так, я все еще получаю « 1 », и это то, от чего я хочу избавиться.

Первый вопрос: есть идеи, как его удалить?

Второй вопрос: есть ли способ добавить еще один R-скрипт в этот проект, где я собираюсь написать все свои функции и затем использовать их в server.R? Я пытался сделать это, но я не могу позвонить им с сервера. R.

Спасибо

1 Ответ

0 голосов
/ 02 марта 2020

Второй вопрос: проверьте это: Существуют ли глобальные переменные в R Shiny?

Ссылочные функции в файле global.R должны использоваться как на вашем ui.R, так и на сервере. Файл .R (см. Ссылку выше).

# In global.R file referencing the functions in your working directory
source('./R/function1.R')
source('./R/function2.R')
source('./R/function3.R')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...