R/Shiny 的 SelectInput "Selected" 不起作用

Posted

技术标签:

【中文标题】R/Shiny 的 SelectInput "Selected" 不起作用【英文标题】:The SelectInput "Selected" for R/Shiny is not working 【发布时间】:2020-07-08 12:42:50 【问题描述】:

我正在构建一个显示 COVID-19 统计数据的 Shiny 应用程序。现在,我正在尝试设置默认的 selectInput; selected == "World",带有 data$location,但由于某种原因,它将自己设置为数据框中的第一个位置,即 "Afghanistan"。

                         selectInput(
                       "country",
                       "Country:",
                       choices =
                         data$location,
                       selected =
                         data$location == "World"
                     )

非常感谢。

【问题讨论】:

【参考方案1】:

你可以试试selected = "World" 代替selected = data$location == "World"

【讨论】:

当我更改为 (selected = "World") 时,它在 selectInput 框中不返回任何值,而之前的 (selected = data$location == "World") 则返回 "阿富汗” 嗯,很难说为什么它不能默认为“世界”。我对 selectInput 也有类似的意外行为。不过,这款应用做得很好! 我找到了解决方法 :) 我不得不从 data$location 更改为 dataToday$location。 dataToday 是匹配 X 日期的数据框的子集; X 是今天的日期。也许它无法从 data$location 中检索到它,因为“数据”数据框中有多个“世界”位置。【参考方案2】:

将 data$location 更改为 dataToday$location。

dataToday 是数据框“data”的子集,只有一行日期;该行是今天的日期。

我的想法是 selectInput 无法从 data$location 检索“World”,因为有多个“World”行名。通过对数据进行子集化并且只有一行名为“World”,它能够成功检索到它。

【讨论】:

【参考方案3】:

就我而言,当我使用selected = NULL 时,我无法在自己的主代码中执行此操作,但选择列表始终显示列表中 data.frame 上的第一个列表。

但如果我现在写代码,用简单的代码,我可以使用selected = NULL,选择列表将是空白的。

【讨论】:

以上是关于R/Shiny 的 SelectInput "Selected" 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

R/Shiny 的 SelectInput "Selected" 不起作用

在 R/Shiny 中通过 selectInput() 传递变量名的问题

R/Shiny 应用程序中的三个相互依赖的 selectInput

r Shiny 使 textInput 以先前的 selectInput 为条件

R / Shiny selectInput小部件大小

R Shiny - 如何在 selectInput 中显示选择标签