Ошибка: неверный номер измерения Shiny - PullRequest
0 голосов
/ 26 августа 2018

Я новичок в Shiny.

Когда я запускаю следующий код, я получаю сообщение "неправильное число измерений".

Я хотел бы поместить checkboxgroupinput рядом с каждой строкойТаблица NameGen, которая является результатом selectInput.Затем, если проверяется одна строка, она будет помещена в новую таблицу в главной панели.

ui.r

library(shiny)

fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput("select","Type",c("C","R","V"),selected=NULL),
      uiOutput("choose_row")
    ),
    mainPanel(
      tableOutput("result")
    )
  )
)

server.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())
}

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Я имел дело с вектором вместо фрейма данных, затем я частично исправил это следующим образом:

ui.r

library(shiny)

fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput("select","Type",c("C","R","V"),selected=NULL),
      uiOutput("choose_row")
    ),
    mainPanel(
      tableOutput("result")
    )
  )
)

server.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())
}

Тем не менее, у меня все еще есть проблема сбора checkboxgroupInput в mainPanel, потому что каждый раз, когда я изменяю input $ select, он сбрасывает мои собранные данные.

0 голосов
/ 27 августа 2018

Попробуй это.

data2[, input$box, drop = FALSE] 

вместо

 data2[input$box,,drop=FALSE]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...