R Wilcoxon秩和检验函数来自;“刮擦”;
我正在尝试生成一个函数,该函数将返回Wilcoxon秩和测试的测试统计信息(这是针对类的,我知道有一个内置函数) 然后我按“总计”列的降序排序,一旦排序,我就对它们进行排序R Wilcoxon秩和检验函数来自;“刮擦”;,r,dataframe,statistics,mean,R,Dataframe,Statistics,Mean,我正在尝试生成一个函数,该函数将返回Wilcoxon秩和测试的测试统计信息(这是针对类的,我知道有一个内置函数) 然后我按“总计”列的降序排序,一旦排序,我就对它们进行排序 newdf= df[order(total),] rankdf=data.frame(newdf,rank=c(1:nrow(newdf))) rankdf names total rank 1 X 1 1 2 X 2 2 3 X 3 3 11
newdf= df[order(total),]
rankdf=data.frame(newdf,rank=c(1:nrow(newdf)))
rankdf
names total rank
1 X 1 1
2 X 2 2
3 X 3 3
11 Y 3 4
4 X 4 5
12 Y 4 6
13 Y 4 7
5 X 5 8
14 Y 5 9
6 X 6 10
15 Y 6 11
7 X 7 12
16 Y 7 13
8 X 8 14
9 X 9 15
10 X 10 16
是否有一种方法可以检查“总计”列中的哪些元素是相同的,并计算“秩”列中相应值的平均值,并在不丢失“名称”列的情况下在行中重新分配结果。我期待着这样的事情:
names total rank
1 X 1 1
2 X 2 2
3 X 3 3.5
11 Y 3 3.5
4 X 4 6
12 Y 4 6
13 Y 4 6
5 X 5 8.5
14 Y 5 8.5
6 X 6 10.5
15 Y 6 10.5
7 X 7 12.5
16 Y 7 12.5
8 X 8 14
9 X 9 15
10 X 10 16
我对R很陌生。提前谢谢
Val在
wilcox.test
中,使用函数rank
,因此您可以执行相同的操作:
cbind(rankdf,w_rank=rank(rankdf$total))
names total rank w_rank
1 X 1 1 1.0
2 X 2 2 2.0
3 X 3 3 3.5
11 Y 3 4 3.5
4 X 4 5 6.5
12 Y 4 6 6.5
13 Y 4 7 6.5
14 Y 4 8 6.5
5 X 5 9 9.5
15 Y 5 10 9.5
6 X 6 11 11.5
16 Y 6 12 11.5
7 X 7 13 13.5
17 Y 7 14 13.5
8 X 8 15 15.0
9 X 9 16 16.0
10 X 10 17 17.0
cbind(rankdf,w_rank=rank(rankdf$total))
names total rank w_rank
1 X 1 1 1.0
2 X 2 2 2.0
3 X 3 3 3.5
11 Y 3 4 3.5
4 X 4 5 6.5
12 Y 4 6 6.5
13 Y 4 7 6.5
14 Y 4 8 6.5
5 X 5 9 9.5
15 Y 5 10 9.5
6 X 6 11 11.5
16 Y 6 12 11.5
7 X 7 13 13.5
17 Y 7 14 13.5
8 X 8 15 15.0
9 X 9 16 16.0
10 X 10 17 17.0