Выбор SelectInput включает заголовок столбца - PullRequest
0 голосов
/ 18 октября 2018

Я использую блестящий файл .rmd и заполняю список вариантов selectInput из файла .csv, получая уникальные значения из подмножества.

Моя проблема в том, что выпадающий список включает заголовок столбца (= 'area' в моем примере ниже), который мне не нужен.

Я видел ссылки ниже и имеюпопробовал несколько вариантов (4 примера показаны ниже), но я не могу понять, как исключить заголовок столбца из выпадающего списка.

[https://github.com/rstudio/shiny/issues/1864]

[https://github.com/rstudio/shiny/issues/326]

[https://shiny.rstudio.com/reference/shiny/latest/selectInput.html]

Вот сокращенная версия данных и кода, которые я использую.(В моей полной версии, которая читается в файле .csv, я включил заголовок = TRUE в оператор read.csv, но это не имело значения.)

---
output: html_document
resource_files:

runtime: shiny
---

```{r global_options, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)


library(shiny)
library(dplyr)
library(data.table)
library(flexdashboard)
library(shinydashboard)

```

```{r data}

si_data <- structure(list(area = c("England", "England", "England", "North UHB", 
"North UHB", "North UHB", "South West UHB", "South West UHB", 
"South West UHB", "South UHB", "South UHB", "South UHB", "Hampshire", 
"Hampshire", "Hampshire", "South West UHB", "South West UHB", 
"South West UHB", "West UHB", "West UHB", "West UHB", "North West UHB", 
"North West UHB", "North West UHB", "North East UHB", "North East UHB", 
"North East UHB"), a_type = c("Country", "Country", "Country", 
"HB", "HB", "HB", "HB", "HB", "HB", "HB", "HB", "HB", "County", 
"County", "County", "HB", "HB", "HB", "HB", "HB", "HB", "HB", 
"HB", "HB", "HB", "HB", "HB"), order = c(0L, 0L, 0L, 1L, 1L, 
1L, 5L, 5L, 5L, 4L, 4L, 4L, 10L, 10L, 10L, 5L, 5L, 5L, 6L, 6L, 
6L, 2L, 2L, 2L, 3L, 3L, 3L)), .Names = c("area", "a_type", "order"
), row.names = c(NA, 27L), class = "data.frame")


```

```{r select input}

  fluidRow(
    column(width=8,
      inputPanel(width=400,
      selectInput("hb", label = "Select HB", choices = (unique(subset(si_data[order(si_data$order),], a_type=="HB",select=area))))
                            )))

  fluidRow(
    column(width=8,
      inputPanel(width='400px',
      selectInput("hb", label = "Select HB - naming the optgroup", choices = ('input_list'=unique(subset(si_data[order(si_data$order),], a_type=="HB",select=area))))
      )))

  fluidRow(
    column(width=8,
      inputPanel(width='400px',
      selectInput("hb", label = "Select HB - naming the optgroup, no quotes", choices = (input_list=unique(subset(si_data[order(si_data$order),], a_type=="HB",select=area))))
      )))

    fluidRow(
    column(width=8,
      inputPanel(width='400px',
      selectInput("hb", label = "Select HB - naming optgroup wrapped in a list", choices = (list("input_list"=unique(subset(si_data[order(si_data$order),], a_type=="HB",select=area))))
                            ))))

```

Я быблагодарен за любые предложения, спасибо!

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Ниже приведен результат выбора, который вы передаете selectInput.Вы передаете столбец dataframe (который является списком), и поэтому вы видите имя столбца в вариантах.Это на самом деле разработанная функция на тот случай, если разработчики захотят создать разделы в своем выборе.

(unique(subset(si_data[order(si_data$order),], a_type=="HB",select=area)))

             area
4       North UHB
22 North West UHB
25 North East UHB
10      South UHB
7  South West UHB
19       West UHB

Если вам это не нужно, просто убедитесь, что вы передаете вектор выборам.Я упростил ваш код для генерации выбора -

unique(si_data$area[order(si_data$order)][si_data$a_type == "HB"])

[1] "North UHB" "North West UHB" "North East UHB" "South West UHB" "West UHB" "Hampshire"
0 голосов
/ 18 октября 2018

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

unique(subset(si_data[order(si_data$order),], a_type=="HB",select=area))[[1]]
...