问题描述
以下是我的数据集的子集:
structure(list(ID = structure(c(1L,1L,2L,3L,4L,5L,6L,7L,7L),.Label = c("5356","5357","5358","5359","5360","5363","5373","5381","5383","5386","5395","5397","5400","5401","5444","5445","5446","5448","5450","5451","5454","5472","5473","5475","5476","5477","5478","5480","5481","5483","5487","5494","5495","5504","5505","5506","5507","5508","5509","5513","5514","5515","5516","5517","5518","5519","5521","5523","5524","5526","5527","5528","5544","5545","5546","5547","5551","5552","5553","5554","5555","5558","5559","5560","5562","5564","5566","5573","5574","5575","5576","5577","5578","5579","5584","5585","5587","5588","5589","5591","5594","5595","5604","5611","5612","5613","5615","5616","5619","5620","5621","5622","5626","5627","5628","5631","5632","5634","5635","5643","5652","5653","5654","5655","5656","5657","5659","5660","5661","5664","5665","5666","5669","5671","5672","5673","5678","5680","5688","5689","5690","5691","5692","5698","5699","5700","5702","5703","5704","5706","5708","5709","5710","5730","5731","5732","5733","5734","5735","5739","5740","5741","5742","5743","5744","5745","5746","5747","5748","5749","5750","5753","5754","5755","5766","5767","5776","5777","5778","5779","5780","5781","5787","5788","5789","5790","5791","5792","5793","5797","5798","5799","5800","5801","5810","5811","5812","5813","5814","5819","5820","5821","5822","5823","5824","5825","5827","5828","5829","5830","5857","5859","5874","5875","5876","5877","5878","5879","5883","5884","5886","5887","5888","5889","5890","5892","5893","5896","5899","5900","5909","5910","5918","5919","5920","5921","5922","5923","5927","5929","5931","5932","5933","5934","5936","5937","5941","5943","5944","5949","5950","5951","5952","5956","5957","5958","5959","5971","5972","5973","5976","5979","5980","5981","6001","6002","6003","6004","6005","6009","6027","6028","6033","6042","6054","6063","6067","6073","6076","6077","6078","6079","6080","6081","6082","6083","6098","6102","6103","6104","6105","6106","6107","6111","6119","6133","6146","6147","6157","6158","6160","6161","6162","6163","6164","6165","6166","6167","6168","6169","6170","6171","6172","6173","6174","6175","6190","6193","6195","6196","6197","6208","6228","6229","6232","6255","6268","6269","6270","6275"),class = "factor"),Gender = structure(c(1L,1L),.Label = c("Male","Female"),Age = structure(c(2L,2L),.Label = c("Young","Old"),FA = c(0.335363597,0.275185704,0.381515294,0.603494346,0.615962446,0.534368277,0.378798842,0.262283027,0.463445097,0.479340732,0.390655279,0.30846712,0.38545981,0.402050078,0.466983199,0.456424206,0.402167588,0.295976758,0.442705005,0.445807546,0.607728601,0.589604795,0.372361958,0.296392322,0.311423391,0.416039616,0.534221292,0.564736903,0.411948681,0.289896786,0.487889856,0.559963286,0.577650726,0.484459132,0.454060167,0.280332953),leftright = structure(c(1L,.Label = c("left","right"),ROI_Coded = structure(c(2L,.Label = c("LC","noradrenergic","FPT"),class = "factor")),row.names = c(NA,-36L),class = c("tbl_df","tbl","data.frame"),na.action = structure(c(`11` = 11L,`12` = 12L,`54` = 54L,`208` = 208L,`347` = 347L,`348` = 348L,`1089` = 1089L,`1263` = 1263L,`1456` = 1456L),class = "omit"))
其中一个子集看起来像:
# A tibble: 36 x 6
ID Gender Age FA leftright ROI_Coded
<fct> <fct> <fct> <dbl> <fct> <fct>
1 5356 Male Old 0.335 left noradrenergic
2 5356 Male Old 0.275 right noradrenergic
3 5356 Male Old 0.382 left LC
4 5356 Male Old 0.603 right LC
5 5356 Male Young 0.616 left FPT
6 5356 Male Young 0.534 right FPT
7 5357 Male Old 0.379 left noradrenergic
8 5357 Male Old 0.262 right noradrenergic
9 5357 Male Old 0.463 left LC
10 5357 Male Old 0.479 right LC
我想使用 rstatix anova_test 函数运行混合方差分析。我试过运行以下:
res.aov <- rstatix::anova_test(
data = df2,dv = FA,wid = ID,between = c(ROI_Coded,leftright),within = c(Age,Gender)
)
The 'wid' column contains duplicate ids across between-subjects variables. Automatic unique id will be created
Error in `contrasts<-`(`*tmP*`,value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels
但是当我检查我的数据时,我没有 NA 并且至少有两个因素:
sapply(fctr,nlevels)
sapply(df2,function(x) sum(is.na(x)))
NAs:
ID Gender Age FA leftright ROI_Coded
0 0 0 0 0 0
Factors:
ID Gender Age leftright ROI_Coded
310 2 2 2 3
我不确定为什么或如何继续。
解决方法
我想我按照指示找到了解决方案 here
afex::aov_car(FA ~ Age*Gender*ROI_Coded*leftright + Error(id/ROI_Coded*leftright),data=df2)
输出结果与:
Missing values for following ID(s):
5357,5383,5505,5552,5821,5909,5980
Removing those cases from the analysis.
仔细查看数据,这些 ID 并没有每个级别的 ROI_Coded
。因此,rstatix 的因子警告有些误导,因为每个 ID 都有 >=2 个因子。