其他
朝花夕拾——putdocx批量输出变量观测值
本文作者:王歌
文字编辑:钱梦璇
技术总编:闫续文
在我们使用Stata的过程中,常常需要输出内存中某些变量的观测值。这一需求在Stata软件自身的界面当然很容易得到满足,直接使用list命令即可实现。以auto数据为例,获得变量make、price、mpg、weight、length、foreign前20行的观测值,程序如下:
sysuse auto, clear
list make price mpg weight length foreign in 1/20
putdocx table tablename = data(varlist) [if] [in] [, varnames obsno table_options]
clear all
cap mkdir E:/putdocx
cd E:/putdocx
! taskkill /F /IM WINWORD.EXE /T
putdocx begin, header(myheader1) //为文档添加名为myheader1的空白页眉
putdocx paragraph, halign(center)
putdocx text ("Auto.dta"), font("Times New Roman",50,black) bold linebreak
putdocx text ("list结果展示"), font("华文楷体",50,green) bold linebreak
putdocx text ("StataClub"), font("黑体",20,black) bold linebreak
putdocx text ("Email: "), font("Arial",20,blue) bold
putdocx text ("statatraining@163.com"), font("Arial",20,blue) bold underline(single)
putdocx paragraph, toheader(myheader1) halign(center) //将以下生成的段落内容插入名为myheader1的页眉中
putdocx text ("by 爬虫俱乐部") //生成文本并插入名为myheader1的页眉中
putdocx save list.docx, replace
shellout list.docx
sysuse auto, clear
putdocx begin
putdocx sectionbreak, header(myheader2) footer(myfooter2) pagenum(decimal, 1)
putdocx paragraph, toheader(myheader2) halign(center) //将以下生成的段落内容插入名为myheader2的页眉中
putdocx pagenumber //插入页码至页眉
putdocx paragraph, tofooter(myfooter2) halign(center) //将以下生成的段落内容插入名为myfooter2的页脚中
putdocx text ("by 爬虫俱乐部") //生成文本并插入名为myfooter2的页脚中
putdocx paragraph, halign(center)
putdocx text ("Auto make price mpg weight length foreign, list in 1/20"), bold
putdocx table table1 = data(make price mpg weight length foreign) in 1/20, varnames obsno layout(autofitcontents) halign(center) //保留变量名及观测值序号,根据表格内容自动调整列宽并居中
putdocx table table1(1,.), bold shading(green) font(,,white) //表格的第一行设置字体颜色为白色,加粗显示,背景色为绿色
forvalues row = 2(2)20 {
putdocx table table1(`row',.), shading(lightgreen)
} //将表格偶数行的背景色设置为浅绿色
putdocx save list.docx, append
shellout list.docx
putdocx begin
putdocx pagebreak //换页
putdocx paragraph, halign(center)
putdocx text ("Auto make-rep78, list in 1/10"), bold
putdocx table table2 = data(make-rep78) in 1/10, varnames width(6) halign(center) cellspacing(0.08) //保留变量名,设置表格宽度6英寸,居中对齐,相邻单元格之间以及单元格与表格边缘之间的宽度为0.08英寸
putdocx save list.docx, append
shellout list.doc
putdocx begin
putdocx sectionbreak, landscape //改为横向布局
putdocx paragraph, halign(center)
putdocx text ("Auto, list in 1/10"), bold
putdocx table table3 = data(_all) in 1/10, varnames layout(autofitcontents) halign(center) //保留变量名,根据表格内容自动调整列宽,并居中
putdocx table table3(1,.), bold shading(blue) font(,,white) //表格的第一行设置字体颜色为白色,加粗显示,背景色为蓝色
forvalues row = 2(2)10 {
putdocx table table3(`row',.), shading(lightblue)
} //表格偶数行的背景色设置为浅蓝色
putdocx table table3(.,1), bold shading(blue) font(,,white) //表格的第一列设置字体颜色为白色,加粗显示,背景色为蓝色
putdocx save list.docx, append
shellout list.docx
对爬虫俱乐部的推文累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫!
往期推文推荐
万般进制千机变,Python一计乾坤定——利用Python来进行进制转换
关于我们
微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。
此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。