《R for Data Science》一书介绍了排序创建函数,即使看了文档,我也很难理解这些示例。
示例如下:
y <- c(1, 2, 2, NA, 3, 4)
min_rank(y)
#> [1] 1 2 2 NA 4 5
min_rank(desc(y))
#> [1] 5 3 3 NA 2 1
row_number(y)
#> [1] 1 2 3 NA 4 5
dense_rank(y)
#> [1] 1 2 2 NA 3 4
percent_rank(y)
#> [1] 0.00 0.25 0.25 NA 0.75 1.00
cume_dist(y)
#> [1] 0.2 0.6 0.6 NA 0.8 1.0
问题:Min_rank: - 5从哪里来?为什么北美不是最后一个?Min_rankd (desc())——为什么有2个3而不是2个2 ?row_number:仍然对NA定位感到困惑,不会有6行吗?
5的存在是因为虽然两个2并列,但第二个2仍然被视为额外的排名。
min_rank和row_number似乎只是rank的方便类比,在如何处理NAs方面可定制性较低。除了min_rank,您可以使用:
rank(y, ties.method = "min", na.last = c(TRUE, FALSE, NA, "keep"))
rank文档说:
na.last:
用于控制NAs的处理。如果为TRUE,数据中缺失的值放在最后;如果为FALSE,它们被放在首位;如果是NA,它们会被移除;如果"keep"他们被保持NA级。
所以min_rank和row_number的默认值似乎是保留的,但是如果你喜欢,你可以将其自定义为TRUE。
关于你的第二个问题:
desc输出负版本的数字矢量等:
[1] -1 -2 -2 NA -3 -4
所以-1是最高的(标记为5),-2是并列第二高的(标记为3),等等。如果这回答了你的问题,请告诉我。