如何在闪亮的应用程序中将selectInput值读取为矢量或字符?

时间:2018-07-21 16:17:20

标签: r select input shiny

我正在开发一个闪亮的应用程序,我想知道是否有一种方法可以使用户通过selectinput将矢量转换为矢量或字符? 实际上,我输入了以下代码

ibrary(shiny)
library(networkD3)
library(openxlsx)
library(dplyr)
library(DT)
library(colourpicker)
library(devtools)
color<-read.xlsx("colors.xlsx",startRow = 1,sheet = 1,colNames = TRUE)
myList<-color$name
ui <- fluidPage(
  sidebarLayout(
                sidebarPanel(helpText(
                  fileInput("myData", "Upload your data ")
                  sidebarPanel(
                  ),
                ),
     mainPanel(      
 # selectInput(inputId = "couleurs",label = "Select colors:",choices = myList,selected = "Dark turquoise", multiple = TRUE))
 # colourInput("col", "Select colour", "purple")
  ))
server <- function(input, output) {}
shinyApp(ui = ui, server = server)

颜色数据库由两列组成:颜色名称(如深绿色)和颜色代码(如“#00CED1”),如下所示

Name    Code
Absolute Zero   #0048BA
Acajou  #4C2F27
Acid green  #B0BF1A
Aero    #7CB9E8
Aero blue   #C9FFE5
African violet  #B284BE
Air Force blue (RAF)    #5D8AA8
Air Force blue (USAF)   #00308F
Air superiority blue    #72A0C1
Alabama crimson #AF002A
Alabaster   #F2F0E6
Alice blue  #F0F8FF
Alizarin crimson    #E32636
Alloy orange    #C46210
Almond  #EFDECD

在这里,我建议是否使用selectinput方法并采用传递的值(即使用颜色选择器方法选择的颜色)来生成将选择重新组合为:'“#5D8AA8”,“#72A0C1”“的字符示例的问题是我无法使用命令“过滤器”在方法1中进行选择,对于第二种方法,如果我尝试将颜色代码保存在拾色器上并将其粘贴到新的颜色代码中,则第一个文本会发生变化!

即使采用某些解决方案,有些人仍建议使用颜色代码作为颜色的名称,我仍然会出错

1 个答案:

答案 0 :(得分:0)

Shiny文档指出,如果命名向量的元素,则这些元素将按名称显示,但按值发送到input $。

  

要选择的值列表。如果已命名列表中的元素,则会向用户显示该名称而不是值。

因此,我会尝试

colorList<-all_codes
names(colorList)<- all_colors
selectInput(inputId = "couleurs", label = "Select colors:",choices = colorList,selected = "Dark turquoise",multiple = TRUE)

传递给输入的值应该是您所需的代码。