stata結(jié)果導(dǎo)入excel-描述統(tǒng)計

前段時間知道stata16可以直接導(dǎo)入SPSS數(shù)據(jù)豆拨,就把stata16安裝了

然后龄句,就想了解stata16的新功能笋籽,官方介紹:New in Stata 16

最開始振诬,是里面的Reproducible reporting吸引我,畢竟一直在想著怎么寫動態(tài)分析報告雨涛,即分析結(jié)果和報告同步更新枢舶。

就研究了一下里面提到的dyndocputexcel替久,putword命令

首先凉泄,就是研究了putexcel命令,想著把頻率分析結(jié)果能直接導(dǎo)入excel蚯根,尤其是有大量變量的時候

簡單嘗試了一下后众,發(fā)現(xiàn)還是很好用,尤其是導(dǎo)出來中文不會亂碼颅拦,而且格式自定義蒂誉,其他命令如logoutasdoc等都有各種問題的距帅。

接下來右锨,分不同帖子寫寫不同分析結(jié)果如何批量導(dǎo)出結(jié)果至excel,

首先是碌秸,stata結(jié)果導(dǎo)入excel-頻率分析

接著是绍移,stata結(jié)果導(dǎo)入excel-多重響應(yīng)

然后是,stata結(jié)果導(dǎo)入excel-交叉分析

還有是讥电,描述統(tǒng)計分析結(jié)果導(dǎo)出Excel

1. 思路

目標(biāo):將多個變量的描述統(tǒng)計以及對該變量的分類描述統(tǒng)計結(jié)果批量導(dǎo)出Excel

總的來說蹂窖,思路都是先分析出結(jié)果組成矩陣,再導(dǎo)出excel:

  1. 在stata中將描述統(tǒng)計分析結(jié)果形成矩陣(即描述統(tǒng)計分析結(jié)果表)恩敌;
  2. 再將矩陣導(dǎo)入excel瞬测;
  3. 根據(jù)每個矩陣行數(shù),自動在上個矩陣結(jié)束后空一行,導(dǎo)入新的矩陣涣楷;
  4. 通過循環(huán)分唾,只需添加變量名,則自動生成新的表狮斗;

2. 所有代碼

第一部分:設(shè)置
local rownum=1
local rntable=1
putexcel set result.xlsx,sheet("描述統(tǒng)計",replace) modify

第二部分:循環(huán)
local depvar "P4Q4 P4Q5 P2Q1 P2Q2 P2Q3 P2Q4 P2Q5"
local indepvar "P4Q3 P4Q6 P4Q7"
foreach d of varlist `depvar' {

第三部分:分析及導(dǎo)出
(1)描述統(tǒng)計分析
local dlabel:var label `d'
local dlabel=subinstr("`dlabel'",":","",.)

//描述統(tǒng)計分析
tabstat `d',s(n mean sd min median max) save
mat destable=r(StatTotal)'
mat colnames destable="樣本量" "均值" "標(biāo)準(zhǔn)差" "最小值" "中位數(shù)" "最大值"
mat rownames destable=`dlabel'
// 結(jié)果導(dǎo)出excel
putexcel a`rownum'=matrix(destable),names txtwrap hcenter vcenter
local rntable:rowsof destable
local rownum=`rownum'+`rntable'+2

(2)分類描述統(tǒng)計分析
foreach i of varlist `indepvar' {
//分類變量
quietly fre `i',nov
local ilabel=r(lab_valid)
local inum=r(r)

//分類統(tǒng)計描述分析
tabstat `d',s(n mean sd min median max) by(`i') save
// 分類描述表
mat desbytable=r(Stat1)
forvalues n=2(1)`inum' {
mat coljoin desbytable=desbytable r(Stat`n') 
}
mat coljoin desbytable=desbytable r(StatTotal) 
mat desbytable=desbytable'
mat colnames desbytable="樣本量" "均值" "標(biāo)準(zhǔn)差" "最小值" "中位數(shù)" "最大值"
mat rownames desbytable=`ilabel' "總計"
// 結(jié)果導(dǎo)出excel
putexcel a`rownum'=matrix(desbytable),names txtwrap hcenter vcenter
local rntable:rowsof desbytable
local rownum=`rownum'+`rntable'+2
}
}

第四部分:設(shè)置格式
putexcel c1:c`rownum',nformat(0.00)
putexcel d1:d`rownum',nformat(0.000)

3.代碼解釋

第一部分:設(shè)置

local rownum=1
local rntable=1
putexcel set result.xlsx,sheet("描述統(tǒng)計",replace) modify

與 stata結(jié)果導(dǎo)入excel-頻率分析 stata結(jié)果導(dǎo)入excel-多重響應(yīng) stata結(jié)果導(dǎo)入excel-交叉分析 相似

第二部分:循環(huán)

local depvar "P4Q4 P4Q5 P2Q1 P2Q2 P2Q3 P2Q4 P2Q5"
local indepvar "P4Q3 P4Q6 P4Q7"
foreach d of varlist `depvar' {

將需要描述統(tǒng)計分析的變量(因變量)和分類變量分別存至?xí)涸?code>depvar和indepvar中绽乔,之后只需要添加因變量和分類變量就行。

第三部分:分析及導(dǎo)出

(1)描述統(tǒng)計分析

local dlabel:var label `d'
local dlabel=subinstr("`dlabel'",":","",.)

第1句:將因變量的變量標(biāo)簽存至?xí)涸?code>dlabel碳褒,便于后期對矩陣命名折砸;

第2句:去掉變量標(biāo)簽中冒號,以免后期矩陣命名出錯沙峻;

以因變量P4Q4為例:

dlabel.png
tabstat `d',s(n mean sd min median max) save
mat destable=r(StatTotal)'
mat colnames destable="樣本量" "均值" "標(biāo)準(zhǔn)差" "最小值" "中位數(shù)" "最大值"
mat rownames destable=`dlabel'

第1句:進(jìn)行描述統(tǒng)計分析睦授,得到因變量的樣本量,均值摔寨,標(biāo)準(zhǔn)差去枷,最小值,中位數(shù)和最大值統(tǒng)計量是复。

注意:添加選項save删顶,得到統(tǒng)計結(jié)果矩陣r(StatTotal)

tabstat結(jié)果.png

第2句:對矩陣r(StatTotal)進(jìn)行轉(zhuǎn)置,加單引號淑廊,得到矩陣destable逗余;

第3句:將矩陣destable的列名修改成樣本量,均值季惩,標(biāo)準(zhǔn)差录粱,最小值,中位數(shù)和最大值

第4句:將矩陣destable的行名修改成因變量的變量標(biāo)簽

矩陣destable:

矩陣destable.png
putexcel a`rownum'=matrix(destable),names txtwrap hcenter vcenter
local rntable:rowsof destable
local rownum=`rownum'+`rntable'+2

目的:將矩陣destable導(dǎo)出Excel

第1句:將矩陣destable導(dǎo)出Excel画拾,從單元格A1(開始循環(huán)時啥繁,暫元rownum為1)導(dǎo)出,帶上矩陣行列名青抛,自動換行输虱,居中

第2句:將矩陣destable的行數(shù)存至?xí)涸?code>rntable中;

第3句:更新暫元rownum脂凶,便于下次循環(huán);

(2)分類描述統(tǒng)計分析

foreach i of varlist `indepvar' {
quietly fre `i',nov
local ilabel=r(lab_valid)
local inum=r(r)

第1句:循環(huán)分類變量愁茁;

第2-4句:將分類變量的分類標(biāo)簽及類別數(shù)量分別存至?xí)涸?code>ilabel和inum蚕钦,便于分類描述統(tǒng)計矩陣的生成。

以變量P4Q6為分類變量為例:

分類變量.png
tabstat `d',s(n mean sd min median max) by(`i') save

分類描述統(tǒng)計分析鹅很,添加選項save保存結(jié)果嘶居,其中,每行結(jié)果存為了1個矩陣:

分類tabstat.png
mat desbytable=r(Stat1)
forvalues n=2(1)`inum' {
mat coljoin desbytable=desbytable r(Stat`n') 
}
mat coljoin desbytable=desbytable r(StatTotal) 
mat desbytable=desbytable'
mat colnames desbytable="樣本量" "均值" "標(biāo)準(zhǔn)差" "最小值" "中位數(shù)" "最大值"
mat rownames desbytable=`ilabel' "總計"

第1-4句:通過循環(huán),將所有r(Stat數(shù)字)的矩陣拼接起來邮屁;

第5句:再和矩陣r(StatTotal)合并起來整袁;

第6句:對合并后的矩陣進(jìn)行轉(zhuǎn)置,得到分類描述統(tǒng)計矩陣desbytable佑吝;

第7-8句:對矩陣desbytable加上行列名坐昙;

矩陣desbytable.png
putexcel a`rownum'=matrix(desbytable),names txtwrap hcenter vcenter
local rntable:rowsof desbytable
local rownum=`rownum'+`rntable'+2
}
}

目的:將矩陣desbytable導(dǎo)出Excel

第1句:將矩陣desbytable導(dǎo)出Excel,從單元格A4(開始循環(huán)時芋忿,此時暫元rownum為4)導(dǎo)出炸客,帶上矩陣行列名,自動換行戈钢,居中

第2句:將矩陣desbytable的行數(shù)存至?xí)涸?code>rntable中痹仙;

第3句:更新暫元rownum,便于下次循環(huán)殉了;

第四部分:格式設(shè)置

putexcel c1:c`rownum',nformat(0.00)
putexcel d1:d`rownum',nformat(0.000)

將均值(C列)導(dǎo)出為保留2位小數(shù)的數(shù)值开仰;標(biāo)準(zhǔn)差(D列)導(dǎo)出為保留3位小數(shù)的數(shù)值

4.最后效果

跑上述代碼的效果(因變量:P4Q4 P4Q5 P2Q1 P2Q2 P2Q3 P2Q4 P2Q5;分類變量:P4Q3 P4Q6 P4Q7)后:

共得到7+7*3=28個描述統(tǒng)計結(jié)果:


tabstat.gif

5. 補充

  • 根據(jù)實際需求修改薪铜,最終可實現(xiàn)批量導(dǎo)出多份數(shù)據(jù)的多個變量的描述統(tǒng)計和分類描述結(jié)果~

預(yù)期接下來:
stata結(jié)果導(dǎo)入excel-方差分析

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末众弓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子痕囱,更是在濱河造成了極大的恐慌田轧,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鞍恢,死亡現(xiàn)場離奇詭異傻粘,居然都是意外死亡,警方通過查閱死者的電腦和手機帮掉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門弦悉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蟆炊,你說我怎么就攤上這事稽莉。” “怎么了涩搓?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵污秆,是天一觀的道長。 經(jīng)常有香客問我昧甘,道長良拼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任充边,我火速辦了婚禮庸推,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己贬媒,他們只是感情好聋亡,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著际乘,像睡著了一般坡倔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蚓庭,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天致讥,我揣著相機與錄音,去河邊找鬼器赞。 笑死垢袱,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的港柜。 我是一名探鬼主播请契,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼夏醉!你這毒婦竟也來了爽锥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤畔柔,失蹤者是張志新(化名)和其女友劉穎氯夷,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體靶擦,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡腮考,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了玄捕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踩蔚。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖枚粘,靈堂內(nèi)的尸體忽然破棺而出馅闽,到底是詐尸還是另有隱情,我是刑警寧澤馍迄,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布福也,位于F島的核電站,受9級特大地震影響攀圈,放射性物質(zhì)發(fā)生泄漏拟杉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一量承、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦撕捍、人聲如沸拿穴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽默色。三九已至,卻和暖如春狮腿,著一層夾襖步出監(jiān)牢的瞬間腿宰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工缘厢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吃度,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓贴硫,卻偏偏與公主長得像椿每,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子英遭,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容