Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R Wilcoxon秩和检验函数来自;“刮擦”;_R_Dataframe_Statistics_Mean - Fatal编程技术网

R 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

我正在尝试生成一个函数,该函数将返回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     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