【问题标题】:Splitting a large dataset into smaller groups based on unique IDs根据唯一 ID 将大型数据集拆分为较小的组
【发布时间】:2019-03-26 14:28:34
【问题描述】:

我有一个包含约 600,000 个观测值的大型数据集。我需要将它分成 20 组,每组 30,000 人。

我没有像Stata FAQ 建议的分类组,所以使用:

keep if group == `i'

我认为对我不起作用。

我的数据集如下所示:

ID       Company
1        Aat
2        Adt
3        Bat
4        Bjt
5        Coffee
.        .
.        .
.        .
600,500  Zyborgg  

目前,我正在使用以下方法对其进行分解:

keep if id < 600000 & id >= 550000

但是,对于 50,000 人的团体,这样做 13 次非常耗时。

有没有更好的办法?

【问题讨论】:

    标签: stata


    【解决方案1】:

    使用带有600 人工生成观察的玩具数据集:

    clear
    set obs 600
    
    generate var = rnormal()
    generate group = int((_n - 1) / 30) + 1
    save data, replace
    

    以下对我有用:

    forvalues i = 1 / 20 {
        use data if group == `i', clear
        save data`i', replace
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-28
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多