元のデータ セットには、12 個ではなく、誤って 13 個の値があったようです。13 個の値を 3 つの分位グループに均等に分割することはできません (BondedDust で述べられているように)。これが元の問題ですが、選択された 1 つのデータ値 (-1.74953) が除外され、12 個の値になります。これにより、当初予想されていた結果が得られます。
library(Hmisc)
c<-c(-4.18304,-3.18343,-2.93237,-2.82836,-2.13478,-2.01892,-1.88773,-1.83124,-1.74858,-0.63265,-0.59626,-0.5681)
cut2(c, g=3,onlycuts=TRUE)
#[1] -4.18304 -2.13478 -1.74953 -0.5681
パッケージに慣れていない人cut2
(今朝の私のような) にわかりやすくするために、整数 1 から 12 を使用することを除いて、同様の問題があります ( vector に割り当てられます)。Hmisc
dozen_values
library(Hmisc)
dozen_values <-1:12
quantile_groups <- cut2(dozen_values,g=3)
levels(quantile_groups)
## [1] "[1, 5)" "[5, 9)" "[9,12]"
cutpoints <- cut2(dozen_values, g=3, onlycuts=TRUE)
cutpoints
## [1] 1 5 9 12
# Show which values belong to which quantile group, using a data frame
quantile_DF <- data.frame(dozen_values, quantile_groups)
names(quantile_DF) <- c("value", "quantile_group")
quantile_DF
## value quantile_group
## 1 1 [1, 5)
## 2 2 [1, 5)
## 3 3 [1, 5)
## 4 4 [1, 5)
## 5 5 [5, 9)
## 6 6 [5, 9)
## 7 7 [5, 9)
## 8 8 [5, 9)
## 9 9 [9,12]
## 10 10 [9,12]
## 11 11 [9,12]
## 12 12 [9,12]
最初の分位グループには 5 までのすべてが含まれますが、5 は含まれません(つまり、この場合は 1 から 4 まで)。2 番目の分位数グループには、5から 9 まで (この場合は 5 から 8 まで)が含まれます。3 番目 (最後) の分位グループには 9 ~ 12 が含まれ、これには最後の値 12 が含まれます。他の分位グループとは異なり、3 番目の分位グループには表示される最後の値が含まれます。
とにかく、「カットポイント」1
、5
、9
、および12
が最も簡潔な方法で分位点グループの開始点と終了点を記述していることがわかりますが、関連するドキュメントを読まないとわかりにくいです(単一ページの Inside-R サイトへのリンクではなく、ほぼ 400 ページの PDF マニュアル)。
よくわからない場合は、括弧と角括弧の表記に関するこの説明を参照してください。