首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中“Quantile`”函数的行为

R中“Quantile`”函数的行为
EN

Stack Overflow用户
提问于 2013-03-09 00:18:39
回答 1查看 458关注 0票数 4

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

代码语言:javascript
复制
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 ) ) ]

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

更新:我想我问错了问题。我们如何解释以下几点:

代码语言:javascript
复制
> 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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-09 00:23:54

您对>和R的回收行为感到困惑。当quantile返回一个以上的值时(就像在最后两个示例中一样),它会回收那些长度与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分位数进行比较,依此类推。明白了吗?:)

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15298490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档