Я работаю над небольшим блестящим приложением, которое обеспечит доступ к некоторым общедоступным данным рынка труда. Я относительно простой набор данных в длинном формате, напоминающем экстракт ниже: данныеR: составление списка уникальных значений, используемых в Shiny selectInput
Geography Measure Time Value
ABC Measure A 2010 3
ABC Measure A 2011 4
ABC Measure A 2013 5
ABC Measure B 2010 0.2
ABC Measure B 2011 4
DEF Measure A 2010 4
DEF Measure A 2011 8
DEF Measure A 2012 7
DEF Measure B 2010 8
DEF Measure B 2010 7
Я намерен произвести простую схему, и я хотел бы использовать метод selectInput
предоставить конечным пользователям удобный способ фильтрации таблиц и соответствующих данных. Следовательно, я хотел бы, чтобы selectInput
содержал список уникальных значений, полученных из столбцов, против которых я намереваюсь применять фильтры. На примере колонок Меры Я получаю список уникальных значений, используя код ниже:
## Create list of unique measures
lst.measures <- as.list(unique(dta$Measure))
но при попытке ввести полученный список в Shiny ui.R
используя код ниже:
# Selection of the available indicators
selectInput("selectVariable", label = h3("Select box"),
choices = lst.measures,
selected = 1)
),
Сформированный список не содержит необходимый текст (мера A, мера B) но список номеров, как на рисунке (Я больше меру в своих данных, чем в выборочных данных):
Я предполагаю, что проблема связана с тем, как структурирован список, в настоящее время
> as.list(unique(dta.nom$Measure))
[[1]]
[1] Measure A
Levels: Measure A Measure B
[[2]]
[1] Measure B
Levels: Measure A Measure B
Следовательно, мой вопрос: Как я могу изменить порядок элементов в списке, так что сгенерированный список могут быть переданы в selectInput
значимым образом, показывая текстовые значения, соответствующие уникальным значениям выбранного столбца?
Большое спасибо, предлагаемое решение работает должным образом. Могу ли я воспользоваться этой возможностью и уточнить, какие значения теперь передаются из 'selectInput'? Как показано на [Блестящем веб-сайте] (http://shiny.rstudio.com/reference/shiny/latest/selectInput.html), 'selectInput' следует структуре' selectInput ("variable", "Variable:", c («Цилиндры» = «Цил», «Передача» = «am»)) 'с переданными значениями' cyl' и 'am', которые будут переданы, если я предоставляю только один список значений ? – Konrad
Конечно, вы можете. Обозначение 'c (« Цилиндры »=« цил »,« Передача »=« am »)' делает параметры selectInput отображаемыми для пользователя как «Цилиндры» и «Передача». Внутренний выбор, который пользователь делает, переводится как «цил» и «am». Важно, конечно, внутренние ценности. Если вы согласны с тем, что пользователь видит имена переменных, а не метки, нет обратной стороны для предоставления только одного вектора. – Pewi