Stata: 加總同性質的資料(Aggregate similar Observations) ~2

以前寫過一篇:Stata: 加總同性質的資料(Aggregate similar Observations),裡面用的方法是collapse,這種情況用於:一個人有多筆資料 (用術語說,就是資料格式是長格式),你想要加總同性質資料,將每個人的資料變成一筆。

這種方法雖好,但如果你想要維持資料是長格式 (一個人有多筆資料),那collapse就不符合你的需求。

假設資料格式如下圖所示。sid代表student id,did代表文件 id,words代表每個文件的字數。

stata-aggregate-1

如果用 collpase 指令:

collapse (mean) words, by(sid)

結果會如下圖所示。原本一個學生有多筆sid,跑完collapse之後,每個學生只剩一筆資料了。

stata-aggregate-2

但這有可能不是你要的,你可能還想維持長格式,那該怎麼辦呢?重新載入資料,我們從頭來過。

如果想知道每個學生平均words,那可以利用egen指令:

bys sid: egen avgwords = mean(words)

結果如下圖所示:

stata-aggregate-3

兩種方法都可以,但結果稍有不同。要選用哪種,就看你要作哪種分析。

4 thoughts on “Stata: 加總同性質的資料(Aggregate similar Observations) ~2”

  1. Lin博士,您好:
    常看您的博客,从您的博客中获益良多。最近有个STATA编程的问题想请教您。

    有如下格式数据:
    ID Date Var1
    AA 1980/01/02
    B 1980/01/31
    C 1982/02/16
    D 1982/03/18
    AA 1982/03/21
    AA 1982/03/21
    B 1982/03/22
    AA 1983/06/30
    E 1985/11/22
    AA 1985/12/31
    G 1987/01/01
    D 1991/02/27

    AA 1999/03/16

    Z 2010/12/31

    想在Var1列生成本行对应ID过去5年重复出现的次数(不计当次)。举例来说,对应AA 1985/12/31行,Var1应显示3
    请问如何用stata编程?

    非常感谢!

  2. 版主您好,時常閱讀您的部落格,從中受益良多,非常感謝您的分享。

    最近在Stata資料處理上遇到一些問題,不知能否請教您?

    我正在處理一個longitudinal 資料庫的工作史資料 (美國的NLSY),

    目前遇到一個辨別及抓取資料的難題,

    每個受訪者都有超過20年資料, (1979-2010)

    工作史部分的問題是以整個訪問期間週別作為呈現方式 (week 1- week1740 )

    我想要的資料是 每年最近的一份工作其中有多少週是 full-time 有多少週是part-time

    我已經整理好每年該份工作的起始與結束的週別 (例如 week 325-week785)

    資料庫本來就有 每工作者每週工作時數的資料,如 week1 = 35, week2= 20…

    所以我現在有的資料是:

    Case id/ year/最近工作起始週/最近工作結束/year/最近工作起始週/最近工作結束週/…week1 worked hr/week2 worked hr/….week1740 worked hour

    1 /1979 /1 /52 /1980 /53 /86 … 35 /20 /…20
    2 /1979 /20 /52 /1980 /20 /100…35/40/…10
    3 /1979 /3 /40 /1980 /50 /99…20/20/…0
    …………..

    我想要的是,讓Stata自己抓取 工作起始週 與 工作結束週,例如 week20- week52

    然後再自己下去對照 每週的工時,分辨出哪些週是 part-time 哪些週是 full-time

    然後建立兩組變項 1979年最近工作full-time週數、 1979年最近工作part-time週數………一直到2010年,

    試了好幾天都試不出來,不知道版主有沒有什麼好建議呢?

    非常謝謝您!

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top
Verified by MonsterInsights