Как обновить данные по клику actionButton?

Для меня лучшим решением является использование QuantileTransformer в sklearn.preprocessing.

from sklearn.preprocessing import QuantileTransformer
fn = lambda input_list : QuantileTransformer(100).fit_transform(np.array(input_list).reshape([-1,1])).ravel().tolist()
input_raw = [1, 2, 3, 4, 17]
output_perc = fn( input_raw )

print "Input=", input_raw
print "Output=", np.round(output_perc,2)

Вот результат

Input= [1, 2, 3, 4, 17]
Output= [ 0.    0.25  0.5   0.75  1.  ]

Примечание: эта функция имеет две характерные особенности:

  1. входные исходные данные НЕ обязательно сортируются .
  2. входные исходные данные НЕ обязательно одиночные столбцы.
-1
задан Curr195 27 February 2019 в 09:36
поделиться

2 ответа

Если приложение настолько простое, вы можете просто изменить actionButton на submitButton

library(dplyr)
library(DT)
library(shiny)

ui <- fluidPage(
  fluidRow(
    numericInput("num1", "Limiter", value = 0)
    ),
  fluidRow(
    submitButton("button1", "Apply filters")
    ),
  fluidRow(
    dataTableOutput("testtable")
    )
)

server <- function(input, output, session) {
  filteredData <- reactive({
    req(input$num1)
    iris %>%
      filter(Petal.Length >= input$num1)
  })

  output$testtable <- renderDataTable(datatable(filteredData()))
}

shinyApp(ui, server)
0
ответ дан JohnCoene 27 February 2019 в 09:36
поделиться

С реактивным значением:

library(dplyr)
library(DT)
library(shiny)

ui <- fluidPage(
  fluidRow(
    numericInput("num1", "Limiter", value = 0)
  ),
  fluidRow(
    actionButton("button1", "Apply filters")
  ),
  fluidRow(
    dataTableOutput("testtable")
  )
)

server <- function(input, output, session) {

  filteredData <- reactiveVal(iris)
  observeEvent(input$button1, {
    filteredData(iris %>% filter(Petal.Length >= input$num1))
  })

  output$testtable <- renderDataTable(datatable(filteredData()))
}

shinyApp(ui, server)
0
ответ дан Stéphane Laurent 27 February 2019 в 09:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: