Я застрял на последнем и наиболее важном этапе создания моего первого довольно простого веб-приложения с использованием Shiny, и я борюсь с тем, что, по моему мнению, должно быть довольно простой задачей.Идея состоит в том, чтобы приложение наблюдало два входа, а затем выводило одно значение из кадра данных на основе их обоих.
Пример кода, чтобы сделать его очень четким.
Server
DF X Y Z
1 A B C
2 C D E
3 F G H
UI
InputA: Row - 2
InputB: Column - Z
Output: E
Намомент, когда я столкнулся с общей стеной с этим, потому что я не получаю ошибку.Приложение запускается без проблем, и все остальные виджеты на этой вкладке и другие работают.На данный момент текстовые поля просто ничего не делают.Можно ввести значения в первые два, но затем ничего не выводится и сообщение об ошибке не предоставляется.Это расстраивает, потому что кажется, что я упускаю что-то очень очевидное.
Вот фактический код сервера
server <- function(input, output, session) {
#Download Data and create data table.
rlwin <- read.csv("rlwinClean.csv")
...
observe({
Lead <- as.character(input$Lead)
CalcTime <- as.character(input$CalcTime)
addtext <- paste(rlwin[rlwin$Time == CalcTime, Lead])
updateTextInput(session,"winProbability", value=addtext)
})
}
...
Интерфейс пользователя:
ui <- (navbarPage(theme=shinytheme("sandstone"), title=h3("Rocket League Win Probability"),
#Tab1 ----
tabPanel("Win Probability Model",
#The Plot
plotOutput("modPlot", height="800px"),
#Probabililty Calculator
h4("Win Probability Calculator"),
textInput(inputId="CalcTime", label="Enter Time on Clock Remaining in Game", placeholder="0:00 to 5:00"),
textInput(inputId="Lead", label="Enter Lead or Deficit", placeholder="-4 to 4"),
br(""),
textInput(inputId="winProbability",label="Win Probability",placeholder="50%"),
br("")
),
...
Редактировать: Нашел ответ на это.Вероятно, он немного длинноватый
Сервер
...
observeEvent(input$runCalc,{
time <- subset(react, GameClock == input$CalcTime)
all <- subset(time, select = input$Lead)
val <- paste(all)
updateTextInput(session, inputId = "probText", value = val)
})
....
Пользовательский интерфейс фактически не изменился