五月天婷亚洲天久久综合网,婷婷丁香五月激情亚洲综合,久久男人精品女人,麻豆91在线播放

  • <center id="8gusu"></center><rt id="8gusu"></rt>
    <menu id="8gusu"><small id="8gusu"></small></menu>
  • <dd id="8gusu"><s id="8gusu"></s></dd>

    stata多對多數(shù)據(jù)合并-經(jīng)管之家官網(wǎng)!

    人大經(jīng)濟論壇-經(jīng)管之家 收藏本站
    您當前的位置> 考研考博>>

    考研

    >>

    stata多對多數(shù)據(jù)合并

    stata多對多數(shù)據(jù)合并

    發(fā)布:refound | 分類:考研

    關于本站

    人大經(jīng)濟論壇-經(jīng)管之家:分享大學、考研、論文、會計、留學、數(shù)據(jù)、經(jīng)濟學、金融學、管理學、統(tǒng)計學、博弈論、統(tǒng)計年鑒、行業(yè)分析包括等相關資源。
    經(jīng)管之家是國內(nèi)活躍的在線教育咨詢平臺!

    經(jīng)管之家新媒體交易平臺

    提供"微信號、微博、抖音、快手、頭條、小紅書、百家號、企鵝號、UC號、一點資訊"等虛擬賬號交易,真正實現(xiàn)買賣雙方的共贏!菊堻c擊這里訪問】

    提供微信號、微博、抖音、快手、頭條、小紅書、百家號、企鵝號、UC號、一點資訊等虛擬賬號交易,真正實現(xiàn)買賣雙方的共贏。【請點擊這里訪問】

    轉載自微信公眾號:爬蟲俱樂部《多對多合并》我們在數(shù)據(jù)處理時,經(jīng)常需要對文件進行橫向合并,我們知道m(xù)erge1:1varlistusingfilename[,options]可以進行一對一合并;merge1:mvarlistusingfilename[,options]可以進行 ...
    免費學術公開課,掃碼加入


    轉載自微信公眾號:爬蟲俱樂部《

    多對多合并》

    我們在數(shù)據(jù)處理時,經(jīng)常需要對文件進行橫向合并,我們知道m(xù)erge 1:1 varlist using filename [, options]可以進行一對一合并;merge 1:m varlist using filename [, options]可以進行一對多合并;merge m:1 varlist using filename [, options]可以進行多對一合并,然而在使用merge m:m varlist using filename [, options]進行多對多合并是有問題的,那么問題在哪?如何解決?這篇推文將會給大家解釋清楚。


    小試牛刀

    1.生成兩個dta文件:

    clear

    input id str3 v1

    1 "a"

    1 "b"

    1 "c"

    1 "d"

    1 "e"

    end

    save 1.dta, replace

    https://img.chuansongme.com/mmbiz_png/ACviaWTBFxhbibXIw4icOjXhiaGRLPO8Stt8ldI1txSuiaShe4gwWXszW7L0BQ7w5mR9q11qy0PZkKdG2mr8TvgJFXw/0?wx_fmt=png

    clear

    input id str3 v2

    1 "d"

    1 "e"

    1 "f"

    end

    save 2.dta, replace

    https://img.chuansongme.com/mmbiz_png/ACviaWTBFxhbibXIw4icOjXhiaGRLPO8Stt8DIXfr4tRlWfMIR5SQZLDflu5od3o9LaAWxlnykYr03tQl8eSIwQemg/0?wx_fmt=png

    接著,我們將兩個文件進行橫向合并,可以看到,由于兩個文件中id不是唯一識別的,屬于多對多合并。我們想要得到的結果如下圖所示:

    https://img.chuansongme.com/mmbiz_png/ACviaWTBFxhbibXIw4icOjXhiaGRLPO8Stt88Qqdia8dZJhUbiadaDJ0YA2OA38vbT09bDThluvdWMSYwvtzmZBlc4icQ/0?wx_fmt=png

    2.直接用merge m:m橫向合并數(shù)據(jù)

    use 1.dta, clear

    merge m:m id using 2.dta

    drop _m

    https://img.chuansongme.com/mmbiz_png/ACviaWTBFxhbibXIw4icOjXhiaGRLPO8Stt8xRiaia8CgNTQbbr5dfOTbwxkZ2qeLvgUTmVckHSrGUpd47ZS9vfRSAEQ/0?wx_fmt=png

    可以看到,直接使用merge m:m進行多對多合并時,第一,并不是1.dta的觀測值分別對應2.dta的每一條觀測值;第二,當某個文件的觀測值少時,將會以該文件中的最后一條觀測值對另一個文件中的觀測值進行合并,如上圖第4、5行。那么怎么得到我們想要的結果呢?

    3.先擴展,再合并

    整體思路是,把多對多合并變?yōu)橐粚Χ嗷蚨鄬σ缓喜ⅰJ紫龋覀冊?.dta中生成變量n,等于所在行行號,然后求出n的最大值,放在局部宏中,并保存為3.dta文件,程序如下:

    use 1.dta, clear

    bysort id: gen n = _n

    sum n

    local max = r(max)

    save 3.dta, replace

    結果如圖所示:

    https://img.chuansongme.com/mmbiz_png/ACviaWTBFxhbibXIw4icOjXhiaGRLPO8Stt8RU7bN0kusgHLZicCEuDjrUDEWpUeS9RAc8sdOcRFmmR1rKhoeSLW0ibw/0?wx_fmt=png

    這樣,把id和n兩個變量作為合并依據(jù)就變成唯一的了,可以看到,n最大值為5。接著在2.dta中,對數(shù)據(jù)進行擴充相應的倍數(shù),即1.dta中變量n的最大值:

    use 2.dta,clear

    expand `max'

    bysort id v2 : gen n = _n

    sort n v2

    結果如圖所示:

    https://img.chuansongme.com/mmbiz_png/ACviaWTBFxhbibXIw4icOjXhiaGRLPO8Stt8xkHSibl2VRGa7XVGV1MicPbzDT7D1pZd6u3ic0rj6VgqcORtswhM6HhuQ/0?wx_fmt=png

    擴充后的數(shù)據(jù),id和n作為合并依據(jù)的話,每個都為3個,所以可以與3.dta進行多對一合并,程序和結果如下:

    merge m:1 id n using 3.dta

    order id v1

    sort id v1 v2

    drop n _m

    結果如圖所示:

    https://img.chuansongme.com/mmbiz_png/ACviaWTBFxhbibXIw4icOjXhiaGRLPO8Stt8qvVsCo1u1QcUzxzEAavx3CH2lfLicA0Q0Wic6OaLcM68Kjo0aHJiceKzw/0?wx_fmt=png


    實例演練

    我們在做事件研究時,如果某個事件發(fā)生在上市公司停牌期間,我們往往需要把其剔除掉,那么首先,我們需要按照股票代碼把事件列表和停復牌時間進行橫向合并,由于同一個公司可能對應多個時間,也可能多次停牌,因此應該進行多對多合并,為了方便大家操作,我們手動生成一個事件列表:

    clear

    set more off

    input Stkcd str15 date

    000001 "2006-03-01"

    000001 "2007-06-05"

    000001 "2007-05-05"

    000001 "2010-03-01"

    000001 "2013-05-06"

    000002 "2003-07-25"

    000002 "2009-08-16"

    000002 "2010-05-09"

    end

    save 事件列表,replace

    https://img.chuansongme.com/mmbiz_png/ACviaWTBFxhbibXIw4icOjXhiaGRLPO8Stt8iaIiaACCooKp9AzMTw6zVEvD5lH2l7c9On0rCGfvAW8NGPx98Xofy1ibQ/0?wx_fmt=png

    我們截取Stkcd為000001和000002公司的停復牌日期,如下圖所示:

    https://img.chuansongme.com/mmbiz_png/ACviaWTBFxhbibXIw4icOjXhiaGRLPO8Stt8EHYCIZ9rrGHaUouSN1UNATUwSoDtngG7cnj9W0w3rNX1ySnLnMGR6Q/0?wx_fmt=png

    其中,startdate為停牌日期,enddate為復牌日期,合并之后,如果date,即時間發(fā)生日在停復牌時間之間,就剔除掉。

    接下來,橫向合并兩個文件,程序如下:

    use 事件列表, clear

    bysort Stkcd : gen n = _n

    sum n

    local max = r(max)

    save 事件列表1,replace

    use停復牌,clear

    expand `max'

    bysort Stkcd startdate enddate : gen n = _n

    merge m:1 Stkcd n using 事件列表1

    keep if _m == 3

    drop _m n

    結果如圖所示:

    https://img.chuansongme.com/mmbiz_png/ACviaWTBFxhbibXIw4icOjXhiaGRLPO8Stt84LSMvdUxVKQY7QvePbicBaUCrDpIMKl7WQTBrOUjDUCH1pRuibpE6zdw/0?wx_fmt=png

    這樣,每一個事件都對應所有的停復牌日期,接著將發(fā)生在停復牌的事件刪除即可,程序如下:

    gen date1 = date(date,"YMD")

    gen num = 1 if date1 >= startdate & date1 <= enddate

    keep Stkcd date num

    duplicates drop

    sort Stkcd date num

    bysort Stkcd date :carryforward num,replace

    drop if num == 1

    drop num

    https://img.chuansongme.com/mmbiz_png/ACviaWTBFxhbibXIw4icOjXhiaGRLPO8Stt8jC1wZ1f18gibeqwjYbiciaM6L69cOoOYtc8bBkicCBlMcTq0bteEAHib1iaA/0?wx_fmt=png


    「經(jīng)管之家」APP:經(jīng)管人學習、答疑、交友,就上經(jīng)管之家!
    免流量費下載資料----在經(jīng)管之家app可以下載論壇上的所有資源,并且不額外收取下載高峰期的論壇幣。
    涵蓋所有經(jīng)管領域的優(yōu)秀內(nèi)容----覆蓋經(jīng)濟、管理、金融投資、計量統(tǒng)計、數(shù)據(jù)分析、國貿(mào)、財會等專業(yè)的學習寶庫,各類資料應有盡有。
    來自五湖四海的經(jīng)管達人----已經(jīng)有上千萬的經(jīng)管人來到這里,你可以找到任何學科方向、有共同話題的朋友。
    經(jīng)管之家(原人大經(jīng)濟論壇),跨越高校的圍墻,帶你走進經(jīng)管知識的新世界。
    掃描下方二維碼下載并注冊APP
    本文關鍵詞:

    本文論壇網(wǎng)址:http://xalimeijing.com/thread-7198016-1-1.html

    人氣文章

    1.凡人大經(jīng)濟論壇-經(jīng)管之家轉載的文章,均出自其它媒體或其他官網(wǎng)介紹,目的在于傳遞更多的信息,并不代表本站贊同其觀點和其真實性負責;
    2.轉載的文章僅代表原創(chuàng)作者觀點,與本站無關。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,本站對該文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性,不作出任何保證或承若;
    3.如本站轉載稿涉及版權等問題,請作者及時聯(lián)系本站,我們會及時處理。
    數(shù)據(jù)分析師 人大經(jīng)濟論壇 大學 專業(yè) 手機版