测试每个因素水平的结果差异(是/否)-在一个因素水平中缺少一个结果水平

时间:2018-12-11 08:26:28

标签: r testing anova kruskal-wallis

我需要一种方法来将向量(血样值)除以时间间隔因子(gacat)的每个级别,并在结果因子变量的两个级别之间比较这些数据(通过t.test / ANOVA或Kruskal Wallis) (EPL(是/否))

在mtcars df中:

df1 <- mtcars
df1$cyl  <- factor(df1$cyl)
df1$gear <- factor(df1$gear) 

此代码使用方差分析很好地解决了我的问题。

lapply(split(df1, df1$gear), function(d){summary(aov(mpg~cyl, data=d))})

但是,由于我在split中的数据的最后一级(在上面的示例齿轮中)只有一个是/否结果,因此整个代码将引发错误:< / p>

 Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
 contrasts can be applied only to factors with 2 or more levels  

我的数据:

             No Yes
<6 weeks     89  21
6-8 weeks   166  37
8-10 weeks  158  18
10-12 weeks 131   5
>12 weeks    90   **0**

*中的零似乎是问题所在... 在此示例中,这不是问题,因为每个因素至少都有两个层次:

table(df1$cyl, df1$gear)
    3  4  5
 4  1  8  2
 6  2  4  1
 8 12  0  2

由于我需要检查大量的血液样本,所以我希望有一种通过短代码块进行这些比较的方法。有什么方法可以使R在最后一个级别上抛出NaN,而不是删除整个代码?

0 个答案:

没有答案
相关问题