【问题标题】:R shiny load data.frame for selectInputR闪亮加载data.frame for selectInput
【发布时间】:2016-07-28 05:47:43
【问题描述】:

我正在尝试编写一个加载多个数据帧的闪亮应用程序。我的绘图的数据框都工作得很好,但是我想用作下拉菜单中的选项列表的一个 data.frame 没有加载。如果我在 R 会话中单独加载框架,一切正常,但如果我只运行闪亮的应用程序,选择器将不会更新。

library(shiny)

ui <- fluidPage(
               #...
               selectInput("mats", "Text",
                           selectors)
               # ...
)

server <- function(input, output){
     # ...
     df1=read.csv("./data/file.csv", sep=";", head=T, stringsAsFactors = F)
     df1$choices=as.character(df1$choices)
     selectors=c("All", df1$choices)
     #...
}

shinyApp(ui = ui, server = server)

我想,我需要服务器函数中的选择器,所以我将数据框与其他数据框一起加载到那里。那是正确的地方吗?我需要做什么才能让它运行?

最好的

【问题讨论】:

    标签: r dataframe shiny


    【解决方案1】:

    你的代码有很多问题:

    1. 根据文档,selectInput 中的choices 应该是一个列表。
    2. 如果您想创建一个可用于ui 和server 的元素,请考虑reading the linked article on scoping rules in Shiny 并在global.R 中定义您的对象。

    关于第一个点,如果您打算使用data.frame 列作为菜单选择的基础,您可以应用以下转换:

    my_new_list <- split(df$id, df$subject)
    

    在this answer 中由@user3710546 提供给a similar question that I've asked in past.


    旁注

    请考虑查看the discussion,了解如何在 R 中制作可重现的示例。如果您想使用一些公开可用的数据重做示例,则很容易产生解决方案。如果我正确理解了问题,您想使用data.frame 列作为UI 元素的基础,这本身并不难。

    .

    【讨论】:

      猜你喜欢
      • 2014-01-20
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      • 2018-07-25
      • 2021-01-04
      • 1970-01-01
      • 2022-06-19
      相关资源
      最近更新 更多