---
source_url: https://docs.dolphindb.cn/zh/funcs/q/qcut.html
fetched_at: 2026-05-19T09:34:42Z
category: funcs
title: qcut
sha1: cc10e6616ab0f4a6cb6ae2c91514e170f46cd20e
---

# qcut

首发版本：3.00.5

## 语法

`qcut(X, q, [labels],[dropDuplicates=false])`

## 详情

根据元素在数值向量中的排序位置，确定其所属的分位区间。例如，将 1000 个数值按分位数划分为 10 个区间，返回每个元素所属的分位区间。

DolphinDB 与 pandas 的 `qcut`
函数虽均用于分位数离散化，但核心差异在于：前者直接操作表列，默认返回整数序号向量，适合海量数据高效分箱；后者是内存分析工具，返回保留区间信息的 Categorical
分类对象，支持指定 *retbins* 提取边界与 *precision* 控制精度，更适合交互式分析。

## 参数

**X** 一个数值向量。

**q** 整型标量或浮点型向量。

- 当为整型标量时，表示分位区间的数量（如 10 表示十分位，4 表示四分位）。
- 当为浮点型向量时，表示分位点，至少包含两个元素，且取值范围为 [0, 1]。

**labels** 可选参数，一个向量，代表每个分位区间的标签。

- 默认为 NULL，函数返回整型向量，代表每个元素对应的分位区间序号。
- 如果 *q* 是标量，*labels* 的长度需要等于 *q*。
- 如果 *q* 是向量，labels 的长度需要等于 *q* 向量长度 -1。

**dropDuplicates** 布尔值，是否删除重复的区间边界。

- 默认为 false，表示存在重复的区间边界时报错.
- 如果为 true，表示删除重复的区间边界。

## 返回值

一个向量，代表每个元素所属的分位区间。

## 例子

```dolphindb
// 将数据划分为 4 个分位区间
qcut([1,2,3,4,5,6,7,8,9,10], 4)
// 输出：[0 0 0 1 1 2 2 3 3 3]

// 使用自定义分位点进行划分：0–30%、30–70%、70–100%
qcut([1,2,3,4,5,6,7,8,9,10], [0, 0.3, 0.7, 1.0])
// 输出：[0 0 0 1 1 1 1 2 2 2]

// 将数据划分为 4 个分位区间，并使用自定义标签作为区间标识
qcut([1,2,3,4,5,6,7,8,9,10], 4, ["Q1", "Q2", "Q3", "Q4"])
// 输出：[Q1	Q1 Q1 Q2 Q2	Q3 Q3 Q4 Q4	Q4]

// 启用 dropDuplicates，自动丢弃重复的区间边界
qcut(X=[1, 1, 1, 1, 2, 3],q=4,dropDuplicates=true)
// 输出：[0 0 0 0 2 2]
```
