首页 > 解决方案 > 错误:不正确的维数 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())
}

标签: checkboxshinynumbersdimension

解决方案


我正在处理矢量而不是数据框,然后我以这种方式部分修复:

用户界面

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 时,它都会重置我收集的数据。


推荐阅读