已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Stata软件用putexcel命令创建Excel表格-为任意变量编写自定义报表在之前的博文中演示了如何使用putexcel在Excel中重现常见的Stata输出。今天将演示如何为任意变量创建自定义报表。创建单元格计数与行百分比相结合,以及具有标准偏差方法的表。但是你可以修改下面的例子包括列的百分比,百分点、标准误差、置信区间或任何统计。使用本地宏将变量名传递到我的程序中。通过将新变量名赋予宏,可以为任意变量创建相同的报表。您可以通过创建每个报表的do-file并将变量名传递到do-file来扩展这个想法。这是我们在Excel中自动创建报表的又一重要步骤。今天的文章包含了几个大的代码组。这是因为每个示例都包含了前面示例中的代码以及新的代码行。虽然允许在整个程序的上下文中看到新代码,但它也使新代码的出现需要更长的时间。代码组中的大部分代码与示例相同。案例1:将返回结果写入Excel我们使用tabulate创建一个sex和race的单元格计数矩阵。输入但是我想把任何两分类变量放入表格中,所以在本地宏RowVar中保存sex数据,在本地宏ColVar中保存race数据。现在可以使用相应的本地宏将sex和race列成表。单元格计数保存在矩阵cellcounts中。通过tabulate可以输入return list来查看标量返回列表。观察的总数保存在标量R(n)中,行数保存在R(r)中,列数保存在R(c)中。为了以后可以使用这些标量,可以将其保存在本地宏中。案例2:循环行和列我可以使用保存的行和列的计数来循环矩阵cellcounts的每个单元格。在矩阵中循环每个单元格使我们能够格式化每个单元格中的数字和/或使用的数字来计算另一个数,如百分比。案例3:char()的功能矩阵的行和列都用数字来索引。Excel表的行用数字来索引,列用字母索引。在Excel中使用char()功能可以将矩阵的列数字转换成列字母。char()函数的参数是一个ASCII码和函数返回对应的ASCII码。比如,char(65)返回字母“A” char(66)返回字母“B”等等。我们可以在循环中使用函数char(64 + col)来将矩阵中的列数字转化为Excel表格的列字母。下面代码1中的第4行将单元格名称保存到本地宏Cell中。可以使用第四行“row”而不是string(row)。但是我始终需要string()的功能,所以为了连贯性这里还是使用了。第5行使用putexcel写入Cell的值与Excel中的单元格对应。案例4:将单元格计数写入ExcelCode block 2演示如何将矩阵中的单元格计数写入Excel表。Code block 2的第四行单元格计数从矩阵cellcounts保存到本地宏CellContents中,第五行Excel表中将目标单元格保存到本地宏Cell中,并且第六行在Excel表中使用putexcel将CellContents写入Cell中。案例5:将行百分比写入Excel我希望将行百分比写入Excel表而不是单元格计数。我需要单元格计数和行合计来计算行百分比。Code block 3下面第三行的tabulate命令将行总数保存到矢量rowtotals里。11行将单元格计数保存到本地宏cellcount里。12行计算和格式化单元格百分比并且将其保存在本地宏cellpercent。13行将“%”符号增加到cellpercent里并且将生成的字符串保存到本地宏CellContents里。案例6:将单元格计数和行百分比写入Excel将单元格计数和行百分比写入每个单元格。可以通过修改上面Code block 3的第13行来实现。下面Code block 4的第13行将cellcount和cellpercent都保存在本地宏CellContents中。案例7:在Excel表格中添加行标签接下来在Excel表格中添加行标签。可以在Excel表中输入“女性”和“男性”,但我希望能够更改程序顶部的行变量,并自动标记行。值的标签比如“0 =女性”和“1 =男性“被定义使用label define并且标签被附加到使用label values变量。如果输入describe sex,可以看到附加的值标签sex被命名成SexLabel。 通过输入label list SexLabel可以看到SexLabel的定义。可以使用变量名来访问所有关于变量值标签的信息。当前行变量的名字,sex保存在本地宏RowVar中。可以使用下面的宏列表函数保存价值标签RowVar到本地宏RowValueLabel中。可以使用levelsof将RowVar的数字分类到本地宏RowLevels中。使用words()功能可以参考RowLevels中的每一个数字分类,比如,本地宏RowLevels里面第一个“word“是”0“。通过使用下面宏列表功能可以将”word“保存到本地宏RowValueLabelNum中。通过使用下面宏列表功能可以将与”0“相关的标签保存到本地宏RowLabel里面。使用同样的方法来保存sex的第二分类。下面Code block 5包含这些命令用于提取RowVar的价值标签并且使用putexcel将标签写入Excel表中。首先将Excel表的单元格向下移一行并且向右移一列。这将为之后添加的行标签和列标签让出空间。通过在char()和string()功能中加1,下移和右移表格来调整16行和23行。第8行RowVar的价值标签保存在本地宏RowValueLabel中。第9行RowVar数字分类保存在本地宏RowLevels中。第14-17行提取每个数字分类相关的标签并将其写入Excel表格中。案例8:在Excel表中添加行总数下面在Excel表中添加行总数。将行总数保存在之前的矩阵rowtotals中,这样可以计算行的百分比。所以只需将矩阵的值写入到Excel表中。下面Code block 6 的第3行将行总数保存到矩阵rowtotals中。9-12行提取rowtotals中的每一行的总数并且将其写入到Excel表中。注意通过添加2到20行的char()功能中,将一列的行总数写入到Excel表的右侧。案例9:在Excel表格中添加列标签和总数使用相同的方法可以增加列标签和总数。在下面Code block 7的第4行中,保存列总数到矩阵coltotals中。第12行保存价值标签ColVar到本地宏ColLevels中,并且第13行保存ColVar的数字分类到本地宏ColLevels中。34-43行把价值标签和列总数写入Excel表单中。只需要将信息一次性写入Excel中,当条件满足if row=1时我就可以指定只运行这些行。案例10:形成一个Excel表现在Excel表中有了所有的数字和标签,我想添加边框线使之更容易阅读。下面Code block8的第49-50行,输入的总计数在表的右下角。52-53行标记总列数,55-56标记总行数。我想添加边框线来指定单元格范围,比58-73行的实现方式还要简洁,但是代码可能比较难懂。58-61行定义表格的四个角并保存到本地宏UpperLeft,UpperRight,BottomLeft和BottomRight中。63-73行使用这4个单元格来定义单元格区域,并在EXCEL表格中添加边框线。 案例11:为任意变量创建Excel表现在你可能会怀疑是否需要花时间使用该方法将表格写入Excel中。写这个程序的时间,都可以手工创建Excel表了。但是我想创建这个表并且需要多次使用,这个方法会节省大量时间。比如,可以在下面Code block 9第1和2行中通过简单的切换变量赋值来切换表中的行和列。案例12:在分类变量水平上为连续变量创建表格案例1-11演示了如何为两分类变量创建一个表格。我可以用类似的方法为分类变量的多级连续变量创建一个汇总统计表。首先为分类变量race创建一个列标题。下面Code block10的代码看起来像案例1-11使用的代码。唯一不熟悉的代码出现在第6行,将变量标签保存在本地宏ColVarLabel中。然后将变量标签写入到25和26行列标签上方的合并单元格中。案例12(接上):接下来,可以添加一个行,其中包含race每个级别的age平均值和标准偏差。在下面Code Block 11的第2行开始保存age到本地宏ContVar中。第12行计算平均值和标准偏差的条件是if ColVar=ColLevel为真实的值。你可能想使用条件if ColVar=col但是最好不要使用。分类变量的级别往往是编号顺序从1开始的整数(比如“1,2,3.”)。但这并不总是正确的。比如,指示变量,像性别就是从0开始编号的。Sex有2个分类,所以如果我们使用条件if sex=1,我们会看到男性的结果但不会看到if sex=2的结果。我们从来不会考虑条件if sex=0。21行格式化返回的均值r(mean),以小数点的形式显示并保存到本地宏RowMean中。22行格式化返回的标准偏差r(sd),显示到小数点后一位并且保存在本地宏RowSD中。15行将RowMean和RowSD合并将结果保存在本地宏CellContents中。20-25行重复计算列总数,26-27行将变量名字age写到E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社群互动游戏设计与实施全攻略
- 心理健康主题班会方案与记录范本
- 2025年网络安全技术分伙协议合同
- 重庆市沙坪坝小学小学数学五年级下册期末试卷(提升篇)
- 砍树安全协议责任书样本
- 细孔钢丝网围栏施工方案
- 河南二手钢便桥施工方案
- 南宁养殖场吊顶施工方案
- 坡顶混泥土浇筑施工方案
- 二建落地洞口施工方案
- 社区矫正人员走访谈话笔录
- 风机安全逃生培训
- 2025年天津全科医生转岗培训考试(理论考核)题库及答案
- 2025班组三级安全安全教育考试题(含答案)
- 医疗机构基本标准
- 人教版 一年级上册数学《20以内的进位加法》(省级作业设计大赛作品)
- 高速收费站消防培训课件
- 防饮食中毒安全知识培训课件
- 2025届广东省深圳市高三下学期一模考试英语试题及答案
- 口腔贴面病例报告
- 2026年中考道德与法治一轮复习:主要知识要点分类复习提纲
评论
0/150
提交评论