Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. library(shiny)
  2. library(DT)
  3. shinyApp(
  4. ui = fluidPage(DT::dataTableOutput('x1'), verbatimTextOutput('x2')),
  5.  
  6. server = function(input, output) {
  7. # create a character vector of shiny inputs
  8. shinyInput = function(FUN, len, id, ...) {
  9. inputs = character(len)
  10. for (i in seq_len(len)) {
  11. inputs[i] = as.character(FUN(paste0(id, i), label = NULL, ...))
  12. }
  13. inputs
  14. }
  15.  
  16. # obtain the values of inputs
  17. shinyValue = function(id, len) {
  18. unlist(lapply(seq_len(len), function(i) {
  19. value = input[[paste0(id, i)]]
  20. if (is.null(value)) NA else value
  21. }))
  22. }
  23.  
  24. # a sample data frame
  25. res = data.frame(
  26. v1 = shinyInput(numericInput, 100, 'v1_', value = 0),
  27. v2 = shinyInput(checkboxInput, 100, 'v2_', value = TRUE),
  28. v3 = rnorm(100),
  29. v4 = sample(LETTERS, 100, TRUE),
  30. stringsAsFactors = FALSE
  31. )
  32.  
  33. # render the table containing shiny inputs
  34. output$x1 = DT::renderDataTable(
  35. res, server = FALSE, escape = FALSE, options = list(
  36. preDrawCallback = JS('function() {
  37. Shiny.unbindAll(this.api().table().node()); }'),
  38. drawCallback = JS('function() {
  39. Shiny.bindAll(this.api().table().node()); } ')
  40. )
  41. )
  42. # print the values of inputs
  43. output$x2 = renderPrint({
  44. data.frame(v1 = shinyValue('v1_', 100), v2 = shinyValue('v2_', 100))
  45. })
  46. }
  47. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement