Я очень плохо знаком с Shiny и пытаюсь создать приложение, которое получает данные с помощью веб-службы.Прочитав о «реактивности» в Shiny, я подумал, что «eventReactive» - лучший путь.Это работало до тех пор, пока не было никакого выражения «если», но как только я использовал выражение «если», оно перестало работать.Ниже приведен упрощенный пример того, что я пытаюсь сделать -
library(shiny)
ui <- fluidPage(
# Application title
titlePanel("Get Data"),
sidebarLayout(
sidebarPanel(
textInput("stationID", "Station ID(s)", value = ""),
radioButtons("DownloadType", "Download",
choices = c("Yes","No"),
selected = "No"),
br(),
radioButtons("DataType", "Data Availability",
choices = c("All","Selected"),
selected = "All"),
actionButton("goButton","Go!")
),
mainPanel(
(tableOutput("results"))
)
))
# Define server logic required to draw a histogram
server <- function(input, output) {
data<-eventReactive(input$goButton, {
if(input$DataType == "All" && input$DownloadType=="No"){
employee <- c('X','Y','Z')
salary <- c(100, 200, 300)
df1<-data.frame(employee, salary)
df1
}
if(input$DataType =="Selected" && input$DownloadType=="No"){
employee <- c('A','B','C')
salary <- c(100, 200, 300)
df1<-data.frame(employee, salary)
employee2<-c('A','B','C')
salary2 <- c(500, 600, 700)
df2<-data.frame(employee2, salary2)
my_df<-merge(df1,df2,by.x="employee",by.y="employee2")
my_df
}
})
output$results<-renderTable({
data()
})
}
# Run the application
shinyApp(ui = ui, server = server)
Может ли кто-нибудь указать мне правильное направление?Когда первый оператор «if» верен, таблица не отображается.Однако, когда второе утверждение «если» верно, оно работает.Идея состоит в том, чтобы нажать кнопку «Перейти» в приложении, чтобы отобразить таблицу на основе комбинации входных данных.Заранее благодарю за любую помощь.