美文网首页
关于数据五等分

关于数据五等分

作者: 冬之心 | 来源:发表于2022-09-29 12:07 被阅读0次

STATA

1、egen命令+cut()函数

这种分割方法,是对感兴趣的变量的取值进行排序,然后变量的实际取值五等分。

 // 收入五等分
egen income2=cut(income), group(5)
 tab income2
// 查看五等分后的均值分布
mean income, over(income2)
income2 Freq. Percent Cum.
0 1,947 19.64 19.64
1 1,586 16 35.65
2 1,754 17.7 53.34
3 2,566 25.89 79.24
4 2,058 20.76 100
Total 9,911 100
Over Mean Std. Err. [95% Conf. Interval]
income
0 645.1798 19.65844 606.6452 683.7143
1 5340.14 46.23396 5249.512 5430.768
2 13028.83 71.89518 12887.9 13169.76
3 25492.33 93.73953 25308.58 25676.08
4 67655.16 1357.951 64993.3 70317.02

2、gen命令+group()函数

这种分割方法是根据感兴趣的变量取值排序,然后对样本五等分。

//根据收入进行排序,然后对数据集五等分。
sort income
gen income3=group(5)
tab income3
mean income, over(income3)
income3 Freq. Percent Cum.
1 1,983 20.01 20.01
2 1,982 20 40.01
3 1,982 20 60
4 1,982 20 80
5 1,982 20 100
Total 9,911 100
Over Mean Std. Err. [95% Conf. Interval]
income
1 687.9299 20.55276 647.6423 728.2175
2 6398.316 56.05585 6288.435 6508.197
3 16010.37 81.97568 15849.68 16171.06
4 27724.18 96.34285 27535.33 27913.03
5 68868.98 1402.875 66119.06 71618.9

R

cut()函数

# 利用cut()函数进行切割,生成新的因子变量income2
> cgss2 <- cgss %>% 
+ mutate(income2=cut(income, breaks=5))
# 分组求均值
> avg_income2 <- cgss2 %>%
+ group_by(income2) %>%
+ summarise(avg=mean(income))
> avg_income2
income2 avg
1 (-1e+03,2e+05] 22143.
2 (2e+05,4e+05] 315116.
3 (4e+05,6e+05] 525000
4 (6e+05,8e+05] 750000
5 (8e+05,1e+06] 1000000

这个结果和STATA的结果差别很大,主要是由于R的cut()函数是先设定最大值和最小值,然后对取值区间进行五等分。
即,上例中的cut(income, breaks=5)相当于
cut(income, breaks=c(0, 200000,400000,600000,800000, 1000000))

参见下面的例子,尤其是等效的hist()函数。

> Z <- stats::rnorm(10000)
> table(cut(Z, breaks = -6:6))

(-6,-5] (-5,-4] (-4,-3] (-3,-2] (-2,-1]  (-1,0]   (0,1]   (1,2]   (2,3]   (3,4]   (4,5]   (5,6] 
      0       2       7     220    1335    3510    3356    1335     225      10       0       0 

> table(cut(cgss$income, breaks=5))

(-1e+03,2e+05]  (2e+05,4e+05]  (4e+05,6e+05]  (6e+05,8e+05]  (8e+05,1e+06] 
          9860             43              4              3              1 

> hist(cgss$income, breaks=5, plot=F)
$breaks
[1] 0e+00 2e+05 4e+05 6e+05 8e+05 1e+06

$counts
[1] 9860   43    4    3    1

$density
[1] 4.974271e-06 2.169307e-08 2.017960e-09 1.513470e-09 5.044900e-10

$mids
[1] 1e+05 3e+05 5e+05 7e+05 9e+05

$xname
[1] "cgss$income"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

很明显,cut()函数是无法满足很多情况下的五等分的切割需求的。
dplyr包中的case_when()函数,是类似if_else条件判断来分组,仍需要事先知道切割点。
如果知道五等分点,不用这些函数,也可以很好地切割。
目前没有找到更好的更好用的R函数。

相关文章

  • 关于数据五等分

    STATA 1、egen命令+cut()函数 这种分割方法,是对感兴趣的变量的取值进行排序,然后变量的实际取值五等...

  • 要我教五个可爱的妹子学习?这番真刺激!

    一个正三角形五等分,可以分出五个相同的小正三角形,那么五个小老婆摆在你面前,你会怎么等分呢? 《五等分的新娘》是春...

  • 简单的人脸描绘参照法

    人脸比例:理想的遵循“三庭五眼”的比例。将人脸的宽度分为五等分,每一等分是眼睛的宽度;人脸的长度分为三等分,上庭是...

  • 《五等分的花嫁》—不等分的炒股恋爱喜剧

    《五等分的新娘》(又名《五等分的花嫁》)是春场葱于《周刊少年Magazine》2017年36/37合并号上开始连载...

  • 自定义曲线图坐标系

    先看效果: 思路:根据点的数量将Canvas等分,等分后先绘制图表的所有横轴和纵轴。再将数据转化为点坐标,绘制到屏...

  • 只做选择题的悲剧,最近感情线纠结到胃疼的作品盘点

    ## 五等分的花嫁(五等分的花嫁及其同人作品,春場ねぎ) 学霸男主因为父亲欠债家道中落,不得不给笨蛋五胞胎大小姐当...

  • 折纸、剪纸及其他

    近期壮壮又迷上了折纸和剪纸。 剪纸是幼儿园里迎新年时老师启蒙了一下,然后我带他从四等分,五等分,六等分折纸开始,随...

  • PPT排版的五个原则

    在PPT排版中主要有五个原则,分别如下: 原则1:三等分原则 三等分原则就是让需要突出显示的内容放置在三等分的焦点...

  • 爱的五等分——《五等分的新娘》书评

    又是一篇迟来的书报。。最近忙的四脚朝天+全网到书变慢+懒癌发作,导致这篇书报到现在才发出来。 其实整稿在上个月就成...

  • 等分

    随着夏的炽热渐褪 秋的浓郁晕染铺陈开来 秋分悄然而至 据中国天文日历显示 九月二十三日九时四分 太阳几乎直射地球赤...

网友评论

      本文标题:关于数据五等分

      本文链接:https://www.haomeiwen.com/subject/blfkartx.html