'data' 必须是二维的(例如数据框或矩阵)RShiny
'data' must be 2-dimensional (e.g. data frame or matrix) RShiny
嗨,
我正在尝试使用 DT 格式化输出。但是,它显示错误:'data' 必须是二维的(例如数据框或矩阵)。
如果有人能提供帮助,我将不胜感激!
下面是从数据结构 (a1) 创建的示例。
data: a1
ind lproof lproofo var1 var2 var3 var4 var5 var6 var7 var8 var9 var10
A001 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A002 D M 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A003 D M 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A004 G M 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A005 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A006 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A007 G D 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A008 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A009 D G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B001 D G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B002 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B003 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B004 M D 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B005 M D 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B006 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B007 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B008 M D 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B009 M D 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
当我 运行 数据时,它会导致以下错误:
ui <- dashboardPage(
dashboardHeader(disable = TRUE),
dashboardSidebar(disable = TRUE),
dashboardBody(
fluidPage(
selectInput("lproofo",
label = h3("Evaluación Vieja:"),
choices = c ("All", unique(as.character(a1$lproofo))), selected = "All")
),
selectInput("lproof",
label = h3("Evaluación Nueva:"),
choices = c ("All", unique(as.character(a1$lproof))), selected = "All"),
DTOutput('a1'), style = "overflow-y: scroll;overflow-x: scroll;")
)
server = function(input, output) {
a2 <- reactive ({
if (input$lproof=="D" & input$lproofo=="M"){
a3 <- a1[a1$lproof == "D" & a1$lproofo == "M", ]
} else
if (input$lproof=="G" & input$lproofo=="M"){
a3 <- a1[a1$lroof == "G" & a1$lproofo == "M", ]
} else
if (input$lproof=="M" & input$lproofo=="G"){
a3 <- a1[a1$lproof == "M" & a1$lproofo == "G", ]
} else
if (input$lproof=="D" & input$lproofo=="G"){
a3 <- a1[a1$lroof == "D" & a1$lproofo == "G", ]
} else
if (input$lproof=="M" & input$lproofo=="D"){
a3 <- a1[a1$lroof == "M" & a1$lproofo == "D", ]
} else
if (input$lproof=="G" & input$lproofo=="D"){
a3 <- a1[a1$lroof == "G" & a1$lproofo == "D", ]
}
return(a3)
})
output$a1<- renderDataTable ({
DT::datatable(a2)
})
}
shinyApp(ui, server)
你的反应函数,就是一个函数。因此,当您使用它时,您需要像引用函数一样引用它,因此 a2()
而不是 a2
。查看您的代码,似乎错误源于以下行:
DT::datatable(a2)
应更改为引用 a2
作为函数:
DT::datatable(a2())
嗨, 我正在尝试使用 DT 格式化输出。但是,它显示错误:'data' 必须是二维的(例如数据框或矩阵)。 如果有人能提供帮助,我将不胜感激!
下面是从数据结构 (a1) 创建的示例。
data: a1
ind lproof lproofo var1 var2 var3 var4 var5 var6 var7 var8 var9 var10
A001 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A002 D M 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A003 D M 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A004 G M 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A005 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A006 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A007 G D 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A008 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
A009 D G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B001 D G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B002 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B003 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B004 M D 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B005 M D 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B006 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B007 M G 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B008 M D 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
B009 M D 2.4 0.5 20.3 0.2 2.4 0.5 2.4 0.5 2.4 0.5
当我 运行 数据时,它会导致以下错误:
ui <- dashboardPage(
dashboardHeader(disable = TRUE),
dashboardSidebar(disable = TRUE),
dashboardBody(
fluidPage(
selectInput("lproofo",
label = h3("Evaluación Vieja:"),
choices = c ("All", unique(as.character(a1$lproofo))), selected = "All")
),
selectInput("lproof",
label = h3("Evaluación Nueva:"),
choices = c ("All", unique(as.character(a1$lproof))), selected = "All"),
DTOutput('a1'), style = "overflow-y: scroll;overflow-x: scroll;")
)
server = function(input, output) {
a2 <- reactive ({
if (input$lproof=="D" & input$lproofo=="M"){
a3 <- a1[a1$lproof == "D" & a1$lproofo == "M", ]
} else
if (input$lproof=="G" & input$lproofo=="M"){
a3 <- a1[a1$lroof == "G" & a1$lproofo == "M", ]
} else
if (input$lproof=="M" & input$lproofo=="G"){
a3 <- a1[a1$lproof == "M" & a1$lproofo == "G", ]
} else
if (input$lproof=="D" & input$lproofo=="G"){
a3 <- a1[a1$lroof == "D" & a1$lproofo == "G", ]
} else
if (input$lproof=="M" & input$lproofo=="D"){
a3 <- a1[a1$lroof == "M" & a1$lproofo == "D", ]
} else
if (input$lproof=="G" & input$lproofo=="D"){
a3 <- a1[a1$lroof == "G" & a1$lproofo == "D", ]
}
return(a3)
})
output$a1<- renderDataTable ({
DT::datatable(a2)
})
}
shinyApp(ui, server)
你的反应函数,就是一个函数。因此,当您使用它时,您需要像引用函数一样引用它,因此 a2()
而不是 a2
。查看您的代码,似乎错误源于以下行:
DT::datatable(a2)
应更改为引用 a2
作为函数:
DT::datatable(a2())