Я использую фрейм данных для приема входов от пользовательского интерфейса. Для упрощения предположим, что это 2 строки и 2 столбца. Основываясь на данных, я хотел бы рассказать о распределении. Задача состоит в том, что мне нужно, чтобы дистрибутивы представлялись одинаково, т. Е. В формате «матрицы».R Блестящая гистограмма как элементы renderTable
Ниже приведен пример воспроизводимости. То, что я понимаю из сообщений об ошибках, следующее: после ввода данных во входную матрицу принимающая матрица не может заменить свои элементы (которые являются числовыми в целом) графиками. Вероятно, я должен сказать получающему фрейму данных, что его элементы не будут «стандартными», но я не знаю, как это сделать. Кроме того, возможно, я должен использовать javascript или html для определения гистограмм?
Вот упрощенная версия моего ui.R и server.R:
ui.R:
shinyUI(navbarPage(
"My Application",
tabPanel("Component 1",
fluidPage(
tableOutput('decision_Matrix'),
tableOutput('decision_Matrix_plots')
)),
tabPanel("Component 2")
))
server.R:
shinyServer(
function(input, output) {
output$decision_Matrix <- renderTable({
matrix_input <- matrix(data=NA, nrow=2,ncol=2)
for (j in 1:2) {
for (i in 1:2) {
matrix_input[i,j] <- paste0("<input id='C", j, "_A", i, "' type='number' class='form-control shiny-bound-input' value='", input[[paste0("C", j, "_A", i)]], "'>")
}
}
rownames(matrix_input) <- c("alt1","alt2")
colnames(matrix_input) <- c("crit1","crit2")
matrix_input
},include.rownames=TRUE, sanitize.text.function = function(x) x)
output$decision_Matrix_plots <- renderTable({
matrix_plots <- data.frame()
for (j in 1:2) {
for (i in 1:2) {
n <- input[[paste0("C", j,"_A",i)]]
matrix_plots[i,j] <- hist(rnorm(n),breaks=10) # here is where it is not correct I think
}}
matrix_plots
})
})
Любая помощь будет значительно оценили.
Спасибо!
H
Вы можете установить точки останова, чтобы увидеть, что значение и класс 'n' есть. – Jean
Непонятно, какое именно значение вы хотите иметь в matrix_plots [i, j]. –