checkbox - 错误:不正确的维数 Shiny
问题描述
我是新来的闪亮。
当我运行以下代码时,我收到消息“维度数不正确”。
我想在 NameGen 表的每一行旁边放置一个复选框组输入,这是 selectInput 的结果。然后,如果选中一行,这将进入主面板中的一个新表。
用户界面
library(shiny)
fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("select","Type",c("C","R","V"),selected=NULL),
uiOutput("choose_row")
),
mainPanel(
tableOutput("result")
)
)
)
服务器.r
library(shiny)
function(input,output){
data1<-reactive({
setwd("/Users/me/Desktop/DirectoryAlR")
AlData<-read.delim2("AlR.csv",sep=";",stringsAsFactors = FALSE)
NameGen<-NULL
for(i in 1:nrow(AlData)){
if(AlData[i,7]==input$select){
NameGen[i]<-AlData[i,1]
}else{
NameGen[i]<-NA
}
}
NameGen<-NameGen[!is.na(NameGen)]
return(NameGen)
})
output$choose_row<-renderUI({
rn<-rownames(data1())
checkboxGroupInput("box","",rn,selected=NULL)
})
result<-reactive({
data2<-data1()
data2[input$box,,drop=FALSE]
})
output$result<-renderTable(result())
}
解决方案
我正在处理矢量而不是数据框,然后我以这种方式部分修复:
用户界面
library(shiny)
fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("select","Type",c("C","R","V"),selected=NULL),
uiOutput("choose_row")
),
mainPanel(
tableOutput("result")
)
)
)
服务器.r
library(shiny)
function(input,output){
data1<-reactive({
setwd("/Users/me/Desktop/DirectoryAlR")
AlData<-read.delim2("AlR.csv",sep=";",stringsAsFactors = FALSE)
NameGen<-NULL
for(i in 1:nrow(AlData)){
if(AlData[i,7]==input$select){
NameGen[i]<-AlData[i,1]
}else{
NameGen[i]<-NA
}
}
NameGen<-NameGen[!is.na(NameGen)]
return(NameGen)
})
output$choose_row<-renderUI({
checkboxGroupInput("box","",data1(),selected=NULL)
})
result<-reactive({
input$box
})
output$result<-renderTable(result())
}
尽管如此,我仍然无法在 mainPanel 中收集 checkboxgroupInput,因为每次我更改 input$select 时,它都会重置我收集的数据。
推荐阅读
- list - List.Sort by PowerQuery (M) 中的子字符串
- r - 尝试使用 dplyr 和 rvest 解析多个 html。需要帮助简化循环
- java - 如何在Java中附加带有动态数据的字符串
- html - Materialise Navbar : 如何在移动设备中使用侧边栏显示相同的导航栏链接
- sql-server - SQL Server 查询 - 字段 B 包含字段 A 数据
- oracle - 未能打开虚拟机 Oracle 开发者日的会话
- c++ - avformat_open_input 无法打开带有原始作品音频数据的文件
- forms - Flutter:我的 ScrollWidget 正在向下滚动,但我的 SUBMIT 和 CANCEL 凸起按钮变得不可见或未显示
- sql - 如何使用 Go 在 postgres 中将等于 (=) 更改为不等于 (<>)
- python - 使用 Python3 在文件中搜索字符串,将下一行的结果添加到数组中,然后在下一个字符串处停止