julia - 在 Julia 中查找分位数
问题描述
我需要一个像xtile
Stata 一样的函数,给定一个向量,它返回每个 obs 所属的分位数。所以如果函数定义为
function xtile(vector; q= 4) #q = 4 by default returns quartiles
*** returns a vector with the same size as "vector", indicating which quantile each obs belongs to.
end
我想用它:
@pipe df |> transform(:height => xtile => :quantiles)
我知道Stella.jl提供了这样的功能。但是我无法安装该软件包,现在我想知道是否还有另一个软件包。或者也许我可以自己实现它。
解决方案
虽然使用 CategoricalArrays 包是一个很好的解决方案,并且具有实际显示分位数含义的额外好处,但xtile
仅使用 Julia 标准库就很容易实现:
using Statistics
function xtile(x; n=4)
q = quantile(x, LinRange(0, 1, n + 1))
map(v -> min(searchsortedlast(q, v), n), x)
end
推荐阅读
- arrays - 在 C 中将数组作为参数传递
- php - 将 laravel 项目上传到子文件夹的问题
- google-bigquery - 在 Data Studio 中提取“_”字符串后的数据
- git - 删除 git/github 提交历史(以前的),同时保持最新的提交
- spring - Spring Boot 对象未完全转移到浏览器
- azure - Powershell:如何使用-Context Parameter Set-AzCurrentStorageAccount
- java - 考虑到所需的最少点数,如何通过 MultiPoint 和 MultiPolygon 之间的交集过滤 SpatialIndexFeatureCollection
- python - 隐藏的硒浏览器py
- android - 在 AVD 中运行 android 应用程序时发生未知异常
- ios - Xamarin 表单中是否有相当于 iOS 的动态系统颜色?