gpt4 book ai didi

r - R 中 `quantile` 函数的行为

转载 作者:行者123 更新时间:2023-12-04 10:11:49 24 4
gpt4 key购买 nike

在处理问题时,我注意到一些有趣的事情。我不知道到底发生了什么,但发生了一些我没想到会发生的事情。我可能犯了一个错误,但让我从一个例子开始:

x <- rnorm( 100 )
y <- x[ x > quantile( x, 0.1 ) ]
z <- x[ x > quantile( x, c( 0.1, 0.2 ) ) ]
a <- x[ x > quantile( x, c( 0.1, 0.2, 0.3 ) ) ]

我们得到三个不同的结果,但是如何解释这些结果。这些是使用的限制吗?

更新:
我想我问错了问题。我们如何解释以下内容:
> x <- rnorm( 100 )
> length( x[ x > quantile( x, 0.1 ) ] )
[1] 90
> length( x[ x > quantile( x, 0.2 ) ] )
[1] 80
> length( x[ x > quantile( x, c( 0.1, 0.2 ) ) ] )
[1] 85

最佳答案

您对 > 感到困惑和 R 的回收行为。当quantile返回 1 个以上的值(如在最后两个示例中)它回收这些向量以使其长度与 x 相同为了通过 > 进行矢量化比较.

因此,在最后两个示例中,它重复了 quantile 中的 2 或 3 个值。一遍又一遍,直到结果向量与 x 的长度相同然后他们将它们与 > 逐元素进行比较.

编辑

可能我的解释不够清楚。在您编辑的最后一行,x > quantile( x, c( 0.1, 0.2 ) ) R 正在比较 x 的第一个元素使用 0.1 分位数,x 的第二个元素使用 0.2 分位数,x 的第三个元素使用 0.1 分位数,x 的第四个元素0.2 分位数,依此类推。知道了? :)

关于r - R 中 `quantile` 函数的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15298490/

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