r - 嵌套因子中的parwise比较问题
问题描述
这是一个数据集,周嵌套在周期中,当我想查看饮食和周之间的成对比较时,这会出现问题。错误“尝试从'by'中取出嵌套因子”是什么意思。意思是?
form <- as.formula(paste(colnames(df)[8],'~ Diet + period +week*Diet +(1|id)')) #get data for interactions
dflmer <- lmer(form, data=df)
a <- Anova(dflmer, type=3)
library(emmeans)
emm <- emmeans(dflmer, pairwise ~ Diet | week)
NOTE: A nesting structure was detected in the fitted model:
week %in% period
Note: Grouping factor(s) for 'week' have been added to the 'by' list.
Error in .nested_contrast(rgobj = object, method = method, by = by, adjust = adjust, :
There are no factor levels left to contrast. Try taking nested factors out of 'by'.
解决方案
由于周嵌套在周期中,因此您不能在没有周期条件的情况下以周为条件。尝试
emmeans(dflmer , pairwise ~ Diet | period:week)
emmeans的最新版本 1.46修复了这个问题,因为旧版本没有考虑嵌套在by
变量中的可能性。
附录
我想我记错了一些细节。生成此错误消息的代码在版本 <= 1.4.5 中放错了位置。我认为您可能需要安装 1.4.6 版才能使其正常工作。查看相关问题报告
附录 2
我构建了一个类似的例子,我仍然从这个模型中得到错误。问题是week
嵌套在 中period
,并且模型已经Diet
与 交叉week
但没有与交叉period
,这没有意义。在我用固定效应项拟合模型后,我能够得到结果Diet*(period + week)
推荐阅读
- swift - Swift pdf没有覆盖tableview中的所有单元格
- c++ - LIBAV MJPEG 编码和霍夫曼表
- jenkins - 在 Jenkins 中使用 ant 命令运行 Ansible playbook
- visual-foxpro - Microsoft Visual Foxpro OleDb 提供程序错误:System.Data.OleDb.OleDbException:“功能不可用。”
- oracle - 此上下文中不允许表、视图或序列引用“LN_GRAPH_PERC.DATE_RED”
- python - 合并数据框,添加/更新字段
- azure-api-management - 如何在 Azure API 管理中导入 swagger
- android - RecyclerView 不显示
- makefile - 是否可以在 Makefile 中使用模式将文件名中间从源映射到目标?
- nestjs - 迁移已添加到根文件夹而不是迁移文件夹