Advertisement
Guest User

Untitled

a guest
Aug 17th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. [object Object]
  2.  
  3. require(shiny)
  4.  
  5. in.df <- data.frame(name = c("Alice","Bob","Charles"),
  6. age = c(22, 25, 36))
  7. rownames(in.df) <- NULL
  8. runApp(
  9. list(
  10. ui = fluidPage(
  11. sidebarPanel(
  12. numericInput("line", "Line number", value = 1),
  13. textInput("name", "Name:"),
  14. numericInput("age", "Age:", value = 25),
  15. actionButton("amendButton", "Amend an entry")
  16. ),
  17. mainPanel(
  18. tableOutput("table"))
  19. ),
  20. server = function(input, output, session){
  21. values <- reactiveValues()
  22. values$df <- in.df
  23. current_line <- reactive({
  24. il <- input$line
  25. nr <- nrow(values$df)
  26. if(il > nr){
  27. return(nr)
  28. } else if(il <= 0){
  29. return(1)
  30. } else{
  31. return(il)
  32. }
  33. })
  34. amendData <- observe({
  35. if(input$amendButton > 0){
  36. newLine <- isolate(c(input$name, input$age))
  37. values$df <- isolate(values$df[- current_line(), ])
  38. isolate(values$df <- rbind(as.matrix(values$df), unlist(newLine)))
  39. values$df <- values$df[order(values$df[,1]),]
  40. }
  41. })
  42.  
  43. observe({
  44. updateTextInput(session = session,
  45. inputId = 'name',
  46. value = values$df[unlist( current_line()),1]
  47. )
  48. updateNumericInput(session = session,
  49. inputId = 'age',
  50. value = values$df[unlist( current_line()),2]
  51. )
  52. updateNumericInput(session = session ,
  53. inputId = 'line',
  54. value = current_line()
  55. )
  56.  
  57. })
  58. output$table <- renderTable(values$df )
  59. }
  60. )
  61. )
  62.  
  63. addData <- observe({
  64. if(input$appendButton > 0){
  65. newLine <- isolate(c(input$name, input$age))
  66. isolate(values$df <- rbind(as.matrix(values$df), unlist(newLine)))
  67. values$df <- values$df[order(values$df[,1]),]
  68. }
  69. })
  70.  
  71. values$df <- isolate(values$df[- current_line(), ])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement