shinyAHP.R

library(shiny)
library(shinyMatrix)
library(rhandsontable)
library(rlang)


reseta_matriz = function(dim){
  matriz = diag(dim)
  for(i in 1:(dim-1)){
    matriz[(i+1):dim,i] = c("")
  }
  return(matriz)
}

verifica = function(num){
  num = eval(parse(text=num))
  if(num == 0 ) return("")
  return(round(1/num,3))
}

inverso = function(matriz){
  dim = dim(matriz)[1]
  for(i in 1:(dim-1)){
    matriz[(i+1):dim,i] = mapply(function(x) verifica(x), matriz[i,(i+1):dim])
  }
  return(matriz)
}



m = reseta_matriz(3)

ui = fluidPage(

numericInput("dim", "Qual é a dimenção da matriz?",3),
actionButton("button", "Update"),
h4("Preencha a matriz: "),
matrixInput(inputId = "matrix",value = m),
h4("Matriz inversa:"),
rHandsontableOutput("table"),
actionButton("button2", "Codigo"),
verbatimTextOutput("texto")

)




server = function(input, output, session){
  output$table <- renderRHandsontable({

    matriz = input$matrix
    rhandsontable(inverso(matriz))

  })

  observeEvent(input$button,{
    nrow = input$dim
    m = reseta_matriz(nrow)
    updateMatrixInput(session, "matrix", m)

  })

  observeEvent(input$button2,{
    output$texto = renderPrint({

      codigo = paste0("matrix(c(",paste(inverso(input$matrix),collapse=", "),"),ncol = 3)")
      codigo


    })

  })


}

shinyApp(ui = ui, server = server)
Lyncoln/AHP2 documentation built on Feb. 5, 2021, 6:32 p.m.