R 在Shining中,从反应对象中的列中选择唯一值以用作输入选项

R 在Shining中,从反应对象中的列中选择唯一值以用作输入选项,r,shiny,R,Shiny,我正在尝试制作一个闪亮的仪表板应用程序,其中下拉菜单中的可用选项是从被动数据对象中的列中检索的 目前,我的代码如下所示: library(shiny) library(shinydashboard) library(shinyWidgets) library(tidyverse) data <- reactiveFileReader( intervalMillis = 100000, NULL, filePath = 'Data\\data.csv', readFu

我正在尝试制作一个闪亮的仪表板应用程序,其中下拉菜单中的可用选项是从被动数据对象中的列中检索的

目前,我的代码如下所示:


library(shiny)
library(shinydashboard)
library(shinyWidgets)
library(tidyverse)

data <- reactiveFileReader(
  intervalMillis = 100000,  
  NULL,
  filePath = 'Data\\data.csv',
  readFunc = read.csv,
  fileEncoding="UTF-8-BOM"
)

header <- dashboardHeader(title = "test")

sidebar <- dashboardSidebar(
  sidebarMenu(
    menuItem("plots", tabName = "plots"),
    pickerInput('to','To:',
                options = list(`actions-box` = TRUE, size = 10), multiple = TRUE,
                choices = NULL)
    )
  )

fluid1 <- fluidRow(
  box()
)

body <- dashboardBody(
  tabItems(
    tabItem(
      tabName = 'plots', h2(fluid1)
    )
  )
)

ui <- dashboardPage(title = 'test', header, sidebar, body, skin='blue')

server <- function(input, output){

  choices <- reactive({
    data() %>%
      select(to) %>%
      unique()
      })

  observe({updatePickerInput('to',choices = choices())})
}

shinyApp(ui = ui, server = server)

我对使用shiny很陌生,所以我在解决这个问题时遇到了实际问题。
任何帮助都将不胜感激

这经常出现。您可能有一个运行中的
闪亮
应用程序,其
服务器
方法缺少
会话
参数。但是,一旦您使用了诸如
updatePickerInput
updateSelectInput
updateTextInput
等方法,就会遇到错误,因为它需要您将
会话
传递给它。因此,您需要确保在
服务器
函数中包含
会话
参数:

server <- function(session, input, output) {
  ...
}
有关
会话
对象的有用参考:


尝试在您的
updatePickerInput
语句中添加
session
updatePickerInput(session'to',choices=choices())
),并确保
session
位于您的服务器函数中:
server@Ben, thanks@Ben作为一些神奇互联网的答案发布points@hedgedandlevered当然-很乐意提供答案。
choices <- reactive({
    data() %>%
      select(to) %>%
      unique()
      })
Warning: Error in : $ operator is invalid for atomic vectors
server <- function(session, input, output) {
  ...
}
updatePickerInput(session, 'to', choices = choices())