我有一个数据集:
并希望检查假设。我想检查正态分布和偏差,并希望建立子群。例如,我想检查列出的每个变量(OM、redox等)的100组分布。有没有办法为这些变量建立一个"100“组,然后对它们进行测试?
谢谢你的帮助!
发布于 2016-05-17 01:33:48
您可以使用tapply
将函数应用于子组
set.seed(10)
df <- data.frame(id = 100:104,
redox = rnorm(25,mean = 20,sd = 10),
depth = runif(25,min = 10,max = 30))
tapply(df$redox,df$id,sd)
这导致了
> tapply(df$redox,df$id,sd)
100 101 102 103 104
6.181492 11.067056 4.863818 14.269076 7.962710
如果要同时对多个列运行测试,请使用aggregate
aggregate(df[,2:3],by = list(df$id),sd)
这就给出了:
Group.1 redox depth
1 100 6.181492 6.319090
2 101 11.067056 5.869627
3 102 4.863818 2.808336
4 103 14.269076 3.438697
5 104 7.962710 6.296606
要测试正态性,可以使用shapiro.test
aggregate(df[,2:3],by = list(df$id),function(x) shapiro.test(x)$statistic)
https://stackoverflow.com/questions/37259400
复制相似问题