r语言 - 排序函数输出



《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),等等。如果这回答了你的问题,请告诉我。

相关内容

  • 没有找到相关文章

最新更新