Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用Hmisc中的cut2计算不同组数的切割_R_Quantile_Hmisc - Fatal编程技术网

R 使用Hmisc中的cut2计算不同组数的切割

R 使用Hmisc中的cut2计算不同组数的切割,r,quantile,hmisc,R,Quantile,Hmisc,我试图通过使用Hmisc中的cut2来计算向量的相等分位数切割 library(Hmisc) c <- c(-4.18304,-3.18343,-2.93237,-2.82836,-2.13478,-2.01892,-1.88773, -1.83124,-1.74953,-1.74858,-0.63265,-0.59626,-0.5681) cut2(c, g=3, onlycuts=TRUE) [1] -4.18304 -2.01892 -1.74858 -0.5681

我试图通过使用Hmisc中的cut2来计算向量的相等分位数切割

library(Hmisc)
c <- c(-4.18304,-3.18343,-2.93237,-2.82836,-2.13478,-2.01892,-1.88773,
       -1.83124,-1.74953,-1.74858,-0.63265,-0.59626,-0.5681)

cut2(c, g=3, onlycuts=TRUE)

[1] -4.18304 -2.01892 -1.74858 -0.56810

我应该继续使用cut2还是尝试其他方法?我怎样才能让它工作?谢谢你的建议

您看到的是切点,但您需要表格计数,并且希望它们作为总数的分数,因此请改为:

> prop.table(table(cut2(c, g=3) ) )

[-4.18,-2.019) [-2.02,-1.749) [-1.75,-0.568] 
     0.3846154      0.3076923      0.3076923 

(显然,当元素数不能被3整除时,不能指望cut2创建精确的分割。)

原始数据集中似乎意外地有13个值,而不是12个。十三个值不能平均分为三个分位数组(如BondedDust所述)。这是最初的问题,只是排除了一个选定的数据值(-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
请注意,第一个分位数组包括最多5个分位数,但不包括5个分位数(即,在本例中为1到4个分位数)。第二分位数组包含5到9,但不包括9(即,在本例中为5到8)。第三个(最后一个)分位数组包含9到12,其中包括最后一个值12。与其他分位数组不同,第三个分位数组包括显示的最后一个值

无论如何,您可以看到“切点”
1
5
9
12
以最简洁的方式描述了分位数组的起点和终点,但如果没有这些切点(链接到single-page Inside-R站点,而不是近400页的PDF手册),它是迟钝的


如果您不熟悉括号与方括号符号,请参阅。

预期结果是什么?-4.18304,-2.13478,-1.74858,-0.56810。感谢您的输入。我不想得到概率。但我试图得到接近相等分位数的切数,我认为@lucyh是在分位数之后。她可以尝试
分位数(x,c(0,0.33,0.66,0.99))
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
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]