错误:所有观察都在同一组中,同时从闪亮的 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 模型的主要内容,如果未能解决你的问题,请参考以下文章