gpt4 book ai didi

r - Shiny :updateSelectizeInput 抛出错误 "$ operator is invalid for atomic vectors"

转载 作者:行者123 更新时间:2023-12-02 00:01:45 25 4
gpt4 key购买 nike

我是 Shiny 的新手,很难弄清楚这一点。我试图在 selectizeInput 中创建一个“全选”按钮,但在将输入从 selectizeInput 传递到 updateSelectizeInput 时遇到错误。有人可以帮我解决这个问题吗?

当我从输入框中选择“全选”时,应用程序将关闭并显示错误:“$ 运算符对于原子向量无效”

我在输入字段中添加了“全选”(selectizeInput())。当用户单击“全选”时,updateSelectizeInput() 将添加输入中的所有名称与“全选”之间的设置差异,并使用所有值填充过滤器框。

脚本数据:https://drive.google.com/file/d/0B_sB3ef_9RntOWJjNlhrUjk3a1k/view

这是我的脚本

UI.R

library(shiny)
shinyUI(fluidPage(
navbarPage(
"Tab_name",
tabPanel("Engine",
bootstrapPage(
div(style="display:inline-block", fileInput("file_attr", "attributes:")),
uiOutput("CountryList")
)
)
)
))

服务器.R

library(shiny)
shinyServer(function(input, output) {
data_attr <- reactive({
file1 <- input$file_attr
if(is.null(file1)){return()}
read.table(file=file1$datapath, sep=",", header = TRUE, stringsAsFactors = FALSE)
})

countries <- reactive({
if(is.null(data_attr()$Country)){return()}
data_attr()$Country
})

observeEvent(input$file_attr, {
output$CountryList <- renderUI({
if(is.null(data_attr()$Country)){return()}
selectizeInput('show_vars', 'Country Filter', choices = c("Select All",unique(countries())), multiple = TRUE)
})
})

observe({
if ("Select All" %in% input$show_vars){
selected_choices <- setdiff(c("Select All",unique(countries())), "Select All")
updateSelectizeInput('show_vars', 'Country Filter', selected = selected_choices)

}

})

})

当我们从 UI 的输入字段中选择“全选”时出现错误

Warning: Error in $: $ operator is invalid for atomic vectors
Stack trace (innermost first):
58: updateSelectInput
57: updateSelectizeInput
56: observerFunc [C:\Users\naresh.ambati\Documents\dummt/server.R#30]
1: runApp
ERROR: [on_request_read] connection reset by peer

谢谢!

最佳答案

该错误是因为您传递给更新的参数 updateSelectizeInput 不正确。您需要将 session 对象作为第一个参数传递。在你的情况下,它应该是这样的:

updateSelectizeInput(session,'show_vars','国家/地区筛选器', selected = selected_choices)

在定义服务器函数时,您需要传递 session 对象,如下所示:

shinyServer(function(input, output, session) { 

.......

}

希望对你有帮助!

关于r - Shiny :updateSelectizeInput 抛出错误 "$ operator is invalid for atomic vectors",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42740175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com