需要帮助在R中编码答案

时间:2018-10-17 20:18:00

标签: r

messages.list

在这个问题上,我不知道X或Y向量如何相互关联。答案是一个向量,这一事实使我最困惑。

我尝试执行负排名(即rank(-s)),然后尝试

rev(rank(X))和rev(rank(Y)),但我得到的排名回报不正确。这是我的代码:

x <- c(-1, 0, 1, 2, -3) #vector x
y <- c(1, 3, 2, 5, 8) # Vector y 
S <- x[order(match(x,y))] #orders and matches x with y 
R <- rank(-S) #ranks S in element number order 
print(R) #I want R = (5 2 1 3 4)

相反,我得到[2 1 4 3 5]

以及其他代码:

never <- rev(rank(-x)) #takes the reverse rank of x 
bird <- rev(rank(y)) #takes the reverse rank of y
kid <- x[order(match(never, bird))] #orders the match of the reverse ranks
tr <- rank(kid) #ranks the match of the reverse ranks 
print(tr) 

我得到[2 1 3 4 5]

2 个答案:

答案 0 :(得分:0)

据我所知,这个问题(尚不清楚,我同意),似乎有一个错误,但是 $ x $ $ y $ 通过 $ s_i $ 索引链接。

下面的问题:感谢 $ y $ ,让我们找到 $ s_1 $ 索引。我们知道 $ y_ {s_1} $ $ y $ 的最大值,因此 $ y_5 $ 在这种情况下。因此, $ s_1 = 5 $ ,因此我们需要找到 $ x_5 = -3 $ 。因为这是最低值,所以我们有 $ r_1 = 5 $

现在使用这种方法,我们将有 $ s_2 = 4 $ ,所以我的猜测是示例或问题中存在错误。

在此示例中,我碰巧有 $ R =(5,1,3,2,4)$

您会注意到,如果对 $ y $ 进行排序,则将排序规则应用于 $ x $ 创建 $ x'$ $ R $ 向量是 $ x'$

答案 1 :(得分:0)

我知道了。

x <- c(-1,0,1,2,-3)
y <- c(1,3,2,5,8)

myrank <- function(x,y)
{
  R=c()
     {
       for(i in 1:length(x))
          {
             b=length(y)+1-rank(y)
             a=length(y)+1-rank(x[b]) # here x[b] is to order the x values according to b
             R=c(a)
          }
     }
  print(R)
}
myrank(x,y)