亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

1.導讀

眾所周知,gen是Stata中使用頻率非常高的變量生成命令之一。誒,難道還有其他變量生成命令?是的,egen(extension of generate)作為gen的擴展,對gen命令進行了補充,幫助我們更好地使用變量生成功能。2.gen與egen的比較

我們將從語法出發(fā),比較gen與egen的異同,看看egen是如何對gen進行擴展的。

gen的語法為:

generate [type] newvar[:lblname] =exp [if] [in] [,before(varname) |after(varname)]

egen的語法為:

egen [type] newvar = fcn(arguments) [if] [in] [, options]

相同點:

(1)gen和egen都是變量生成命令;

(2)變量類型[type]均為可選項,缺省時,gen和egen能夠根據(jù)新生成的變量值自動判斷并分配數(shù)據(jù)類型;

(3)兩者都能選用[if]和[in]進行條件判斷和范圍選擇;

(4)兩者都可以使用by前綴(在某些情況下egen無法使用by分組功能)。

不同點:

(1)[:lblname]選項使gen可以在生成新變量的同時賦予其已定義的值標簽,并且[, before(varname) |after(varname)]選項允許我們調(diào)整新變量的順序;

(2)敲重點:使用gen生成的新變量,其變量值是由給定的表達式(exp)計算所得,表達式中可以使用Stata中的任意運算符(如,代數(shù)運算符”+” “-“ “*” “\”,邏輯運算符”>” “<” “|” “&” “!”等)和九大類函數(shù);

(3)敲重點:egen只能使用專屬的egen函數(shù)來為新變量計算變量值,如mean()、rank()等。值得注意的是,egen函數(shù)只能在egen命令下使用,不能用在gen的表達式中,egen命令也無法使用任何運算符或九大類函數(shù)來計算生成變量值;

(4)在使用gen命令時,_n和_N是我們常用的下標變量,用于表示行號和總觀測值非常方便,但egen卻無法使用。這是為什么呢?因為egen專屬函數(shù)往往以某個變量或某一觀測目標為參數(shù),計算某個變量(一列)或觀測目標(一行)的某種特征(比如均值,使用mean()),因此無需使用_n和_N。這也提示了egen生成的新變量值往往是一個常數(shù)(constant),當然也有egen專屬函數(shù)的返回值不是常數(shù),而gen生成的變量值則是一個變動值(running value)。

3.案例分析

下面,我們通過一個簡單的例子來驗證上述異同點。

現(xiàn)有兩個家庭:第一個家庭是一個三口之家,父親、母親、女兒的年齡分別是44、41、20歲;第二個家庭三代同堂,祖父祖母為83、85歲,父親母親為45、44歲,兒子24歲,孫女3歲。

插入input命令,把兩個家庭的把相關數(shù)據(jù)寫入stata數(shù)據(jù)集:

input hid age gender income1 44 1 90001 41 0 80001 20 0 50002 83 1 20002 85 0 20002 45 1 60002 44 0 80002 24 1 40002 3 0 0end

查看Stata數(shù)據(jù)集:

 

特別地,目前僅發(fā)現(xiàn)sum()函數(shù)能夠同時被gen和egen使用。利用gen命令,使用sum()函數(shù)生成的IncomeSumg是列累積和,比如IncomeSumg[2]=income[1]+ income[2] ,是一個變動值(running value),而在egen命令下sum()返回的則是列總和,IncomeSume的每一個變量值都等于income變量值的總和(即44000=5000+8000+9000+0+4000+8000+6000+2000+2000),是一個常數(shù)(constant)。

實際上,sum()作為一個常規(guī)數(shù)學函數(shù),并不屬于egen專屬函數(shù),并且egen專屬函數(shù)中的total()函數(shù)功能與sum()完全一致——返回列總和。這個矛盾我們目前尚無答案,讀者朋友們?nèi)缬泻侠淼南敕ㄕ堅谠u論區(qū)告訴我們唷~4.結論

綜合上述分析,我們能夠得到啟示:使用gen命令創(chuàng)建新變量是一種“相對”創(chuàng)建,比如,現(xiàn)要求生成一個新變量,個人年收入incomey:

gen incomey = income*1

這個命令的實質(zhì)是,創(chuàng)建一個新變量incomey,使得:

incomey[1] = income[1]*12incomey[2] = imcome[2]*12…incomey[_N] = income[_N]*12

而egen的某些專屬函數(shù)的參數(shù)往往是某一整行或某一整列,比如計算兩個家庭的月收入均值,月收入的下四分位數(shù):

egen meani = mean(income)egen pctile4 = pctile(income),p(25)

其中,income是作為收入總和(即44000)參與計算的,這與gen命令有顯著的不同。

當然,egen還有許多其他專屬函數(shù),比如anycount()、anymatch()等使用“相對”創(chuàng)建方法的專屬函數(shù),也有rowfirst()、rowmax()等對每行進行匹配和判斷的函數(shù)……總之,當你想創(chuàng)建一個以整行或整列的特征為結果或判斷、匹配條件時就可以考慮使用egen命令啦。

分享到:
標簽:rank函數(shù) rank函數(shù)怎么用 rank函數(shù)的使用方法 rank函數(shù)的用法 rank排名函數(shù) Excel函數(shù)
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定