首页 > 解决方案 > R:将等级 1 分配给预定义的最大值

问题描述

我有这样的数据集:

Value 
  5    
  4
  2
  1   

我希望最大值具有最小等级,而最小值具有最高等级。在这个数据集中,Value=1 将重新编码为 5,而 Value=5 将重新编码为 1。但是,由于我的数据集中缺少 Value=3,通过使用排名函数 rank(-Value),我只能设法得到这个

Value Rank 
  5    1   
  4    2
  2    3
  1    4   

R中有什么方法可以得到这样的东西吗?

Value Rank 
  5    1   
  4    2
  2    4
  1    5   

标签: rrankrecode

解决方案


您可以通过查找向量的最大值和最小值,然后在最大值和最小值之间的完整数字集中搜索索引来做到这一点。

v <- c(5,4,2)
x <- min(v)
y <- max(v)
x:y
match(v,x:y)
[1] 4 3 1

使用因子的水平作为 J.Win。只要您的向量中有 1,建议就会起作用,否则,最高值的排名不会为 1。抱歉,我没有足够的声誉将其添加为评论。


推荐阅读