Я новичок в 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.
Спасибо