为什么我不能用FUN = shapiro.test聚合data.frame

时间:2012-12-06 16:06:38

标签: r

这里是有问题的data.frame:

sample <- dput(df)
structure(c(6, 5, 5, 4, 4, 7, 5, 4, 6, 6, 5, 6, 8, 6, 3, 5, 8, 
4, 7, 6, 4, 4, 2, 5, 4, 7, 2, 5, 5, 4, 6, 4, 5, 8, 6, 4, 7, 7, 
4, 4, 5, 8, 4, 6, 9, 3, 7, 6, 8, 6, 6, 3, 3, 6, 7, 7, 6, 6, 7, 
7, 6, 7, 8, 3, 5, 5, 4, 6, 4, 7, 3, 4, 6, 3, 5, 5, 7, 6, 7, 4, 
3, 5, 4, 5, 3, 6, 8, 6, 4, 9, 8, 5, 4, 7, 4, 6, 7, 5, 6, 9, 7, 
6, 8, 5, 0, 5, 6, 5, 7, 5, 5, 7, 2, 5, 7, 4, 3, 7, 7, 6, 7, 8, 
5, 6, 9, 4, 6, 7, 5, 4, 5, 4, 6, 6, 9, 8, 5, 7, 7, 7, 4, 7, 6, 
7, 6, 9, 5, 4, 8, 4, 6, 4, 6, 0, 4, 7, 6, 4, 6, 3, 0, 3, 4, 5, 
8, 5, 6, 6, 5, 5, 7, 7, 5, 7, 8, 3, 4, 4, 5, 7, 5, 8, 6, 9, 7, 
5, 4, 3, 4, 4, 6, 2, 4, 6, 7, 6, 5, 5, 5, 5, 6, 6, 8, 5, 5, 6, 
6, 4, 5, 8, 4, 7, 5, 6, 3, 6, 5, 3, 6, 3, 6, 6, 7, 4, 2, 6, 5, 
4, 5, 6, 6, 6, 7, 6, 6, 6, 5, 6, 5, 6, 6, 7, 7, 6, 6, 5, 5, 5, 
7, 6, 9, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3), .Dim = c(252L, 2L), .Dimnames = list(NULL, c("pMRMW", 
"group")))

aggregate(pMRMW~group,data=sample,shapiro.test)

返回

corrupt data frame: columns will be truncated or padded with NAs

其他功能按预期工作。

我错过了一些完全明显的东西吗?

1 个答案:

答案 0 :(得分:3)

出现问题是因为s​​hapiro.test()返回4个值的列表。

如果您需要p值,那么您可以

 aggregate(pMRMW~group,data=sample,function (x) shapiro.test(x)$p.value)
   group        pMRMW
1     1 0.0064932854
2     2 0.0006112324
3     3 0.0044895909