用R中的置换检验实现简单评分函数

用R中的置换检验实现简单评分函数,r,R,我是R方面的新手,我想计算生物学中一系列基因的特定分数。 有人能帮我实现这个吗?:-) 我有以下两个向量: vector 1: (0.01,0.02,0.04,0.5,0.9,0.002,0.07,0.008) vector 2: (1,0,0,1,0,0,0,0) vector 2显示特定集合c 我想实现一个评分功能,该功能将执行以下步骤: 1) 将向量1和向量2作为输入 2) 使用递减值对向量1进行排序,然后使用相应的向量1对向量2进行排序 3) 它经过排序的向量1,如果对于向量1的元素i

我是R方面的新手,我想计算生物学中一系列基因的特定分数。 有人能帮我实现这个吗?:-)

我有以下两个向量:

vector 1: (0.01,0.02,0.04,0.5,0.9,0.002,0.07,0.008)
vector 2: (1,0,0,1,0,0,0,0)
vector 2
显示特定集合c

我想实现一个评分功能,该功能将执行以下步骤:

1) 将
向量1
向量2
作为输入

2) 使用递减值对
向量1
进行排序,然后使用相应的
向量1
向量2
进行排序

3) 它经过排序的
向量1
,如果对于
向量1
的元素
i
,排序的
向量2
的对应元素是1,那么分数应该增加
(m-l)
, 否则它应该减少
l

m=向量1的长度

l=
向量2中非零元素的#

4) 最后对
向量1
向量2
进行排列,并重新计算步骤3的分数。排列应保留
向量2
向量1
元素的真实成员身份。例如:
向量1
:(10,7,4),
向量2
:(0,0,1),在一个可能的排列之后:
向量1
:(4,7,10),
向量2
:(1,0,0)

以下是我的尝试:

            vector1<- c(0.01,0.02,0.04,0.5,0.9,0.002,0.07,0.008)

            vector2<- c(1,0,0,1,0,0,0,0)

            m<-length(vector1)
            l<-nnzero(vector2, na.counted = NA)
            score=0

        score_function<-function (a,b){

            a<-sort(a,decreasing = T)

       for (i in a){
        if (b[i]==1) {
         score= + m-1
        } else{ score= score-l }
        }
score
        }

vector1如果要按另一个向量排序,请使用
order()
作为“[”的索引:

向量1 >向量2向量2[顺序(向量1)] [1] 0 0 1 0 0 0 1 0
您能告诉我们您已经为此尝试了什么吗?这些步骤中有几个是基本的(如排序)我们需要知道你在这方面的水平。此外,你似乎不接受你的很多问题的答案。接受回答来解决你的问题是这个网站的一个重要部分。我使用排序函数对向量1进行排序,但我不知道如何将向量2与向量1一起排序。我不知道,我知道你不知道如何使用
c()
连接向量吗?这里没有“this”。
排序(vector1,递减=t)[1]0.900 0.500 0.070 0.040 0 0.020 0.010 0.008 0.002>排序的向量2:[1]0 1 0 0 0 0 0 0
> vector1<- c(0.01,0.02,0.04,0.5,0.9,0.002,0.07,0.008)
> 
>             vector2<- c(1,0,0,1,0,0,0,0)
> vector2[ order(vector1) ]
[1] 0 0 1 0 0 0 1 0