This package provides an input field to enter matrix conveniently in a shiny application. It supports tabbing and jumping linewise in the matrix.
 
From CRAN:
install.packages("shinyMatrix")From GitHub:
if (require("devtools")) install_github("INWTlab/shiny-matrix")The input field is generated by the function
matrixInput
matrixInput <- function(inputId,
                        value = matrix("", 1, 1),
                        inputClass = "",
                        rows = list(),
                        cols = list(),
                        class = "character"
                        pagination = FALSE,
                        lazy = FALSE){
  [...]
}You can define parameters as follows:
| Parameter | Description | 
|---|---|
| inputId | idof html element | 
| value | matrix | 
| inputClass | classof html element (Classmatrix-inputis added automatically) | 
| rows | listof parameters (see below) | 
| cols | listof parameters (see below) | 
| class | class of resulting matrix ( numericandcharacter) is supported | 
| pagination | Should the matrix be paginated (10 rows per page) | 
| lazy | Lazy update data on server | 
Parameter rows / cols take a list of
arguments. The following is supported
| Parameter | Description | 
|---|---|
| n | number of rows (is calculated from valueper
default) | 
| names | show row/colnames (names are taken from value) | 
| editableNames | should row/colnames be editable? | 
| extend | should rows/cols be automatically be added if table is filled to the last row / column? | 
| delta | how many blank rows/cols should be added | 
| multiheader | Display multiheader - currently only header spanning two columns are supported | 
Call the matrixInput function in your UI generating, e.g. ui.R
## numeric matrix
matrixInput("matrix1", class = "numeric")
## editable rownames
matrixInput("matrix2",
  rows = list(
    names = TRUE,
    editableNames = TRUE),
  data = matrix(letters[1:12], 3, 4)
)You can access the value from the matrix input using
input$inputId in your server function. The result will
always be a matrix of the class defined in matrixInput.
You can update the input field using
updateMatrixInput
updateMatrixInput(session, inputId, value = NULL)value is the data object. In the future there should be
also support to update the other parameters.
You find the code for the example app in
inst/appXXX.
Use the matrix on the left to input values, matrix on the right displays the result.
library(shinyMatrix)
startApplication("app")updateMatrixInput from RstartApplication("appUpdate")startApplication("appRownames")startApplication("appUneditableCells")startApplication("appExtend")startApplication("appDoubleHeader")startApplication("appDelete")startApplication("appLazy")