Я создал следующее блестящее приложение, используя R блестящий.
Импорт библиотек следующим образом
library(shiny)
library(data.table)
library(rhandsontable)
Далее Мы определяем пользовательский интерфейс для приложения
ui <- fluidPage(sidebarPanel(numericInput(inputId = "N", value = 0, label = "N"),
actionButton(inputId = "Run", label = "Run")),
mainPanel(rHandsontableOutput(outputId = "inptable1"),
dataTableOutput(outputId = "table1"),
plotOutput(outputId = "plot1")))
Приведенный выше пользовательский интерфейс содержит кнопку действия и цифру c ввод в боковой панели
Далее Мы создаем Сервер с помощью handsontable, datatable, plot et c
server <- function(input, output, session) {
DF1<-reactive({
#### WE REMOVE NA ERROR HERE
req(input$N)
DF = data.frame(ID = seq(1:input$N),
Column2 = seq(1:input$N)*2,
# Col3 = c("A","A","A", "A", "A"),
stringsAsFactors = FALSE)
DF$Col3<-"A"
return(rhandsontable(DF))
})
output$inptable1<-renderRHandsontable({
return(DF1())
print(DF1()) })
Analysis_Result<-eventReactive(input$Run,{
DF2<- hot_to_r(input$inptable1)
return(DF2) })
DF2<-reactive({
Analysis_Result() })
output$table1<-renderDataTable({
return(DF2()) })
output$plot1<-renderPlot({
plot(DF2()$Column2) })
}
shinyApp(ui = ui, server = server)
Когда мы запускаем приложение, мы получаем handsontable, который можно редактировать. Редактирование рабочей таблицы и нажатие кнопки запуска создаст график и таблицу данных, которая будет динамически изменяться при изменении ввода в ручной таблице
Можно ли изменить код так, чтобы после того, как мы сгенерировали график и таблицу после нажатия кнопку запуска, а затем мы вводим новые значения в таблицу управления, график и данные очищаются / исчезают реактивно.