gpt4 book ai didi

r - 是否有充分的理由使用 `sort` 和 `index.return = TRUE` 而不是 `order` ?

转载 作者:行者123 更新时间:2023-12-04 18:00:58 24 4
gpt4 key购买 nike

sort有论据 index.return默认情况下是 FALSE .如果您将其设置为 TRUE你得到了排序索引...与使用 order 时基本相同.

我的问题
在某些情况下使用 sort 是否有意义?与 index.return = TRUE而不是 order ?

最佳答案

order简单地给出索引,而不是 sort还给出了值(和 index.return=T a list ):

x <- runif(10, 0, 100)
order(x)
# [1] 2 7 1 9 6 5 8 10 4 3
sort(x, index.return=T)
# $`x`
# [1] 0.08140348 0.18272011 0.23575252 0.51493537 0.64281259 0.92121388 0.93759670 0.96221375 0.97646916 0.97863369
#
# $ix
# [1] 2 7 1 9 6 5 8 10 4 3

看来 order大数字(更长的向量大小)会快一点:
x <- runif(10000000, 0, 100)

microbenchmark::microbenchmark(
sort = {sort(x, index.return=T)},
order = {x[order(x)]},
times = 100
)
# Unit: milliseconds
# expr min lq mean median uq max neval
# sort 63.48221 67.79530 78.33724 70.74215 74.10109 173.1129 100
# order 56.46055 57.18649 60.88239 58.29462 62.13086 155.5481 100

所以可能你应该用 index.return = TRUE 选择排序仅当您需要 list要返回的对象。我找不到 sort 的例子比另一个好。

关于r - 是否有充分的理由使用 `sort` 和 `index.return = TRUE` 而不是 `order` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53338224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com