用于selectInput的R有光泽的加载data.frame

时间:2016-04-07 11:16:52

标签: r dataframe shiny

我正在尝试编写一个加载多个数据框的闪亮应用。我的绘图的数据框都运行良好,但是我想要用作下拉菜单中的选项列表的一个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)

我认为,我需要服务器功能中的选择器,所以我将数据框与其他数据帧一起加载。这是正确的地方,我需要做些什么才能让它运转起来?

最佳

1 个答案:

答案 0 :(得分:1)

您的代码存在许多问题:

  1. 根据文档,users.joins(:user_tags).where.not(user_tags: { name: 'recorded' }) 中的choices应为列表。
  2. 如果您想创建一个可在selectInputui中使用的元素,请考虑reading the linked article on scoping rules in Shiny并在server中定义您的对象。
  3. 关于第一点,如果您打算使用global.R列作为菜单选择的基础,则可以应用以下转换:

    data.frame

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

    旁注

    请考虑查看the discussion R中制作可重现的示例。如果您想使用一些公开数据重做您的示例,则很容易生成解决方案。如果我正确理解了问题,您希望使用my_new_list <- split(df$id, df$subject) 列作为data.frame元素的基础,这本身并不困难。