R 中的 afex:错误:被试内设计中的空单元格即错误的数据结构但是数据结构很好

问题描述

我正在尝试使用 1 个主体间变量和 2 个主体内变量运行 ANCOVA,但遇到了一个对我来说毫无意义的错误。我的数据如下所示:

扫描 ID 区域 ALFF 年龄 响应
1 20 辅助 0.826 阿道尔 77.25
2 20 辅助 1.116 阿道尔 73.18
1 22 辅助 0.362 成人 78.70
2 22 辅助 0.849 成人 72.58
1 20 MDM 0.826 阿道尔 79.25
2 20 MDM 1.116 阿道尔 71.18
1 22 MDM 0.778 成人 79.70
2 22 MDM 0.291 成人 73.58

我的 ANCOVA 代码是:

Full_Anova_ALFF% group_by(Region) %>% do(fit=aov_car(ALFF ~ AgeScan+Error(ID/ScanResp),data = .))>

当我运行它时出现此错误

转换为因子:年龄

错误:被试内设计中的空单元格(即错误的数据结构)。 表(数据[c(“扫描”,“响应”)])

 Resp
扫描 X77.25 X73.1777777766667 X63.1944444433333 X70.3333333333333 X78.7 X72.5833333333333
X1 1 0 0 0 1 0
X2 0 1 0 0 0 1
X3 0 0 1 0 0 1
X4 0 0 0 1 0 0
 Resp
扫描 X72.4833333333333 X78.25 X65.1833333333333 X71.9166666666667 X57.333333335 X65.55
X1 0 0 1 0 0 1
X2 0 0 0 1 0 0
X3 1 0 0 0 0 0
X4 0 1 0

Scan 是因子变量,resp 是数字,我不知道为什么会发生这个错误。没有空单元格!而这个作为错误信息一部分输出的怪异表也很奇怪。它似乎将呼吸视为一个因素?但我已经明确告诉它呼吸是数字。当我从模型中取出呼吸时,它运行得完全正常。但是,不幸的是,我确实需要包括呼吸。

有人知道出了什么问题吗?或者甚至只是一种我可以用来完成这项工作的解决方法

预先感谢您的帮助!!

解决方法

对于那些感兴趣的人,我想通了!我最终使用了线性混合模型而不是我上面的模型,因为我的协变量是在扫描级别而不是对象间变量。

我的命令最终是:

Full_Anova_ALFF% group_by(Region) %>% do(fit=mixed(ALFF~Resp+Age*Scan+(1|ID)+(1|Scan),data=.))

希望这对未来的人有所帮助!