错误:所有观察都在同一组中,同时从闪亮的 ui 列表中动态过滤 R 模型

Posted

技术标签:

【中文标题】错误:所有观察都在同一组中,同时从闪亮的 ui 列表中动态过滤 R 模型【英文标题】:Error: all observations are in the same group, while filtering the R model dynamically from shiny ui list 【发布时间】:2018-08-08 19:01:48 【问题描述】:

伙计们,我是 Shiny 的新手,在这里我遇到了 R 到 Shiny 翻译的问题, 我正在使用 SelectInput 将 teacher_IDs 作为输入来过滤 sever.r 上的相应学生数据。 Data looks like this 直到下面的代码都可以正常工作。

library(shiny)

x <- fluidPage("this is fluid page", 
           selectInput("Selecter","slide to select",choices = ID$Teacher_ID, 
selected = "1003935242" ),
          tableOutput("data")
  ################### server.r #################
)
shinyServer(function(input, output) 
output$data = renderTable(
  TeachersData[TeachersData$Teacher_ID==input$Selecter,]
) 
)

但是,当我在下面的 RenderTable() 块中添加更多使用 anova、kruskal 等实际计算统计值的代码时,我收到错误消息


错误:所有观察都在同一组中

***,我试图通过拆分和创建包含因子和其他一些东西的组来解决,但无法解决。 代码没有问题,似乎用闪亮的方式处理数据有问题。

   ############ server.r problematic ##########

shinyServer(function(input, output) 

output$data = renderTable(

  Instro = TeachersData[TeachersData$Teacher_ID==input$Selecter,]
  Data_Procedure1= Instro 
  Data_Procedure1$Score=as.numeric(as.character(Data_Procedure1$Score))
  Data_Procedure1_ByCourse=Subset_Data_ByCourse_fct(Data_Procedure1)
  ANOVA_Procedure1= Compare_ANOVA_Procedure1_fct(Data_Procedure1, 
  Data_Procedure1$Score, as.factor(Data_Procedure1$Course_ID), alpha)
  p_Procedure1 = ANOVA_Procedure1$p_value
  Method_Procedure1= ANOVA_Procedure1$test_name
  PairWise_Compare_Procedure1=Pairwise_Comparison_fct(Method_Procedure1, 
  Data_Procedure1, Data_Procedure1$Score, 
  as.factor(Data_Procedure1$Course_ID ))
  result <- as.data.frame(PairWise_Compare_Procedure1)
)

)

Error message

请大家帮忙解答一下,非常感谢。

【问题讨论】:

【参考方案1】:

首先,这个“ID$Teacher_ID”可以加载吗?选项是否显示在 UI 中?有时这可能是个问题。

其次,如果我正确理解你的问题,你应该改变这个:

TeachersData[TeachersData$Teacher_ID==input$slide,]

到这里:

TeachersData[TeachersData$Teacher_ID==input$Selecter,]

如果这不是问题,也许你应该显示什么是 input$slide?​​p>

【讨论】:

顺便说一句,如果 Teacher_ID 是 numeric(),你应该 as.numeric(input$Selecter) 感谢您的指出,抱歉我在代码中更正了,只是复制代码时出错。是的,上面的测试代码工作正常,当我添加其他统计操作(如下面的代码)并根据所选输入过滤结果时,问题就来了。但是,如果我删除其他数据并仅保留单个 TeacherID 的数据集,那么它可以工作并显示结果,但是对于具有所有teacherID 的完整数据集,它不起作用。 您的 selectInput 如何让您保留所有 ID?如果实际上允许您对多个 ID 执行此操作,那么您应该将 TeachersData$Teacher_ID==input$Selecter 更改为 TeachersData$Teacher_ID%in%input$Selecter【参考方案2】:

感谢@Ricardo 提供帮助,但问题出在其他地方。 进一步挖掘后,我发现数据集有问题。因为当我过滤数据时,数据中的一些 Teacher_ID 有单个记录并且没有进一步的子分组,那就是统计模型无法捕获这些 Teacher_ID 的观察结果,并且抛出了将所有观察结果都放在同一组中的错误。因此,当我过滤掉这种在统计上不重要的类型数据后,现在一切正常。

【讨论】:

以上是关于错误:所有观察都在同一组中,同时从闪亮的 ui 列表中动态过滤 R 模型的主要内容,如果未能解决你的问题,请参考以下文章

闪亮的 Ui - 多次参考同一个情节

闪亮的UI - 如何使文本在点符号后的同一位置开始

观察事件的闪亮范围错误

闪亮的响应式 UI 在同一条件变量上挂起多个 uiOutput 调用

观察事件中闪亮的反应数据集

如何从同一列同时更新母马行?