如果我有一个如下所示的向量:
vec1 <- c(4, 4, 5, 1, 23, 7, 8)
我想将其转换为1:length(vec1)的向量,以便看起来像这样:
vec2 <- c(2,2,3,1,6,4,5)
vec2是vec1的翻译版本,其中根据vec2中元素的顺序,元素从1到6。 base-R中有功能可以做到这一点吗?
答案 0 :(得分:1)
您正在min_rank()
中寻找library(dplyr)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
vec1 <- c(4, 4, 5, 1, 23, 7, 8)
dense_rank(vec1)
#> [1] 2 2 3 1 6 4 5
# or
min_rank(vec1)
#> [1] 2 2 4 1 7 5 6
由reprex package(v0.2.1)于2019-01-19创建