Ed *_*ine 1 r mean quartile data-science
我将一个名为gob的数据集加载到R中并尝试了方便的summary功能.值得注意的是,第三个四分位数小于平均值.怎么会这样?它是我的数据大小还是其他类似的东西?
我已经尝试为digits参数传递一个大值(例如10),但这并没有解决问题.
> summary(gob, digits=10)
customer_id 100101.D 100199.D 100201.D
Min. : 1083 Min. :0.0000000 Min. :0.0000000 Min. :0.0000000
1st Qu.: 965928 1st Qu.:0.0000000 1st Qu.:0.0000000 1st Qu.:0.0000000
Median :2448738 Median :0.0000000 Median :0.0000000 Median :0.0000000
Mean :2660101 Mean :0.0010027 Mean :0.0013348 Mean :0.0000878
3rd Qu.:4133368 3rd Qu.:0.0000000 3rd Qu.:0.0000000 3rd Qu.:0.0000000
Max. :6538193 Max. :1.0000000 Max. :1.0000000 Max. :0.7520278
Run Code Online (Sandbox Code Playgroud)
请注意,对于gob $ 100201.D,平均值为0.0000878,但是第3曲.= 0.
Did*_*rts 14
它不是一个bug,只是你的数据包含很多0值.例如,如果我用十二0和一个1制作x,我得到的结果是第三四分位数小于平均值
x<-c(0,0,0,0,0,0,0,0,0,0,0,0,1)
summary(x)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.00000 0.00000 0.00000 0.07692 0.00000 1.00000
Run Code Online (Sandbox Code Playgroud)
尝试在列上使用table()来查看值的分布
table(x)
x
0 1
12 1
Run Code Online (Sandbox Code Playgroud)
第三分位数可以低于平均值。它不是最大值的75%,而是从最低到最高排序的矢量计数的75%的值。换一种说法:
Vector <- c(0,0,0,0,0,0,0,1)
mean(Vector)
[1] 0.125
quantile(Vector, 0.75)
[1] 0
Run Code Online (Sandbox Code Playgroud)
为了找到第三个分位数,R将所有数据从最低到最高排序,然后选择最接近该向量长度的75%的值。所以基本上:
3rdQuar = Vector[round(length(Vector)*0.75)]
Run Code Online (Sandbox Code Playgroud)
(请注意,如果它落在两个整数之间,则R会实际上对两个整数求平均。但这是基本思想)
| 归档时间: |
|
| 查看次数: |
5590 次 |
| 最近记录: |