Stata软件用putexcel命令创建Excel表格--为任意变量编写自定义报表

上传人:206****923 文档编号:41566763 上传时间:2018-05-30 格式:DOCX 页数:21 大小:1.02MB
返回 下载 相关 举报
Stata软件用putexcel命令创建Excel表格--为任意变量编写自定义报表_第1页
第1页 / 共21页
Stata软件用putexcel命令创建Excel表格--为任意变量编写自定义报表_第2页
第2页 / 共21页
Stata软件用putexcel命令创建Excel表格--为任意变量编写自定义报表_第3页
第3页 / 共21页
Stata软件用putexcel命令创建Excel表格--为任意变量编写自定义报表_第4页
第4页 / 共21页
Stata软件用putexcel命令创建Excel表格--为任意变量编写自定义报表_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《Stata软件用putexcel命令创建Excel表格--为任意变量编写自定义报表》由会员分享,可在线阅读,更多相关《Stata软件用putexcel命令创建Excel表格--为任意变量编写自定义报表(21页珍藏版)》请在金锄头文库上搜索。

1、Stata 软件用 putexcel 命令创建 Excel 表格-为任意变量编写自定义报表在之前的博文中演示了如何使用 putexcel 在 Excel 中重现常见的 Stata 输出。今天将演示如何为任意变量创建自定义报表。创建单元格计数与行百分比相结合,以及具有标准偏差方法的表。但是你可以修改下面的例子包括列的百分比,百分点、标准误差、置信区间或任何统计。使用本地宏将变量名传递到我的程序中。通过将新变量名赋予宏,可以为任意变量创建相同的报表。您可以通过创建每个报表的 do-file 并将变量名传递到 do-file 来扩展这个想法。这是我们在 Excel 中自动创建报表的又一重要步骤。今天

2、的文章包含了几个大的代码组。这是因为每个示例都包含了前面示例中的代码以及新的代码行。虽然允许在整个程序的上下文中看到新代码,但它也使新代码的出现需要更长的时间。代码组中的大部分代码与示例相同。案例 1:将返回结果写入 Excel我们使用 tabulate 创建一个 sex 和 race 的单元格计数矩阵。输入但是我想把任何两分类变量放入表格中,所以在本地宏 RowVar 中保存 sex 数据,在本地宏 ColVar 中保存 race 数据。现在可以使用相应的本地宏将 sex 和 race 列成表。单元格计数保存在矩阵 cellcounts 中。通过 tabulate 可以输入 return l

3、ist 来查看标量返回列表。观察的总数保存在标量 R(n)中,行数保存在 R(r)中,列数保存在 R(c)中。为了以后可以使用这些标量,可以将其保存在本地宏中。案例 2:循环行和列我可以使用保存的行和列的计数来循环矩阵 cellcounts 的每个单元格。在矩阵中循环每个单元格使我们能够格式化每个单元格中的数字和/或使用的数字来计算另一个数,如百分比。案例 3:char()的功能矩阵的行和列都用数字来索引。Excel 表的行用数字来索引,列用字母索引。在 Excel 中使用 char()功能可以将矩阵的列数字转换成列字母。char()函数的参数是一个 ASCII 码和函数返回对应的 ASCII

4、 码。比如,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 blo

5、ck 2 的第四行单元格计数从矩阵 cellcounts 保存到本地宏 CellContents 中,第五行 Excel 表中将目标单元格保存到本地宏 Cell 中,并且第六行在 Excel 表中使用 putexcel 将 CellContents 写入Cell 中。案例 5:将行百分比写入 Excel我希望将行百分比写入 Excel 表而不是单元格计数。我需要单元格计数和行合计来计算行百分比。Code block 3 下面第三行的 tabulate 命令将行总数保存到矢量 rowtotals 里。11 行将单元格计数保存到本地宏 cellcount 里。12 行计算和格式化单元格百分比并且将

6、其保存在本地宏 cellpercent。13 行将“%”符号增加到 cellpercent 里并且将生成的字符串保存到本地宏 CellContents 里。案例 6:将单元格计数和行百分比写入 Excel将单元格计数和行百分比写入每个单元格。可以通过修改上面 Code block 3 的第 13 行来实现。下面 Code block 4 的第 13 行将 cellcount 和 cellpercent 都保存在本地宏CellContents 中。案例 7:在 Excel 表格中添加行标签接下来在 Excel 表格中添加行标签。可以在 Excel 表中输入“女性”和“男性” ,但我希望能够更改程

7、序顶部的行变量,并自动标记行。值的标签比如“0 =女性”和“1 =男性“被定义使用 label define 并且标签被附加到使用 label values 变量。如果输入 describe sex,可以看到附加的值标签 sex 被命名成 SexLabel。通过输入 label list SexLabel 可以看到 SexLabel 的定义。可以使用变量名来访问所有关于变量值标签的信息。当前行变量的名字,sex 保存在本地宏 RowVar 中。可以使用下面的宏列表函数保存价值标签 RowVar 到本地宏RowValueLabel 中。可以使用 levelsof 将 RowVar 的数字分类到本

8、地宏 RowLevels 中。使用 words()功能可以参考 RowLevels 中的每一个数字分类,比如,本地宏 RowLevels里面第一个“word“是”0“。通过使用下面宏列表功能可以将”word“保存到本地宏RowValueLabelNum 中。通过使用下面宏列表功能可以将与”0“相关的标签保存到本地宏 RowLabel 里面。使用同样的方法来保存 sex 的第二分类。下面 Code block 5 包含这些命令用于提取 RowVar 的价值标签并且使用 putexcel 将标签写入 Excel 表中。首先将 Excel 表的单元格向下移一行并且向右移一列。这将为之后添加的行标签和

9、列标签让出空间。通过在 char() 和 string()功能中加 1,下移和右移表格来调整 16 行和 23 行。第 8 行 RowVar 的价值标签保存在本地宏 RowValueLabel 中。第 9 行 RowVar 数字分类保存在本地宏 RowLevels 中。第 14-17 行提取每个数字分类相关的标签并将其写入 Excel 表格中。案例 8:在 Excel 表中添加行总数下面在 Excel 表中添加行总数。将行总数保存在之前的矩阵 rowtotals 中,这样可以计算行的百分比。所以只需将矩阵的值写入到 Excel 表中。下面 Code block 6 的第 3 行将行总数保存到矩

10、阵 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 表单中。

11、只需要将信息一次性写入 Excel 中,当条件满足 if row=1 时我就可以指定只运行这些行。案例 10:形成一个 Excel 表现在 Excel 表中有了所有的数字和标签,我想添加边框线使之更容易阅读。下面 Code block 8 的第 49-50 行,输入的总计数在表的右下角。 52-53 行标记总列数,55-56 标记总行数。我想添加边框线来指定单元格范围,比 58-73 行的实现方式还要简洁,但是代码可能比较难懂。58-61 行定义表格的四个角并保存到本地宏 UpperLeft, UpperRight,BottomLeft 和 BottomRight 中。63-73 行使用这 4

12、 个单元格来定义单元格区域,并在EXCEL 表格中添加边框线。案例 11:为任意变量创建 Excel 表现在你可能会怀疑是否需要花时间使用该方法将表格写入 Excel 中。写这个程序的时间,都可以手工创建 Excel 表了。但是我想创建这个表并且需要多次使用,这个方法会节省大量时间。比如,可以在下面 Code block 9 第 1 和 2 行中通过简单的切换变量赋值来切换表中的行和列。案例 12:在分类变量水平上为连续变量创建表格案例 1-11 演示了如何为两分类变量创建一个表格。我可以用类似的方法为分类变量的多级连续变量创建一个汇总统计表。首先为分类变量 race 创建一个列标题。下面 C

13、ode block 10 的代码看起来像案例 1-11 使用的代码。唯一不熟悉的代码出现在第 6 行,将变量标签保存在本地宏 ColVarLabel 中。然后将变量标签写入到 25 和 26 行列标签上方的合并单元格中。案例 12(接上):接下来,可以添加一个行,其中包含 race 每个级别的 age 平均值和标准偏差。在下面Code Block 11 的第 2 行开始保存 age 到本地宏 ContVar 中。第 12 行计算平均值和标准偏差的条件是 if ColVar=ColLevel为真实的值。你可能想使用条件 if ColVar=col但是最好不要使用。分类变量的级别往往是编号顺序从1

14、 开始的整数(比如“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 写到 Excel 表中。结语希望本文能够鼓舞你而不是吓到你。为任意变量创建自动报告不是一件快速和容易的事情。但是手动生成这些表格可能是费时和令人沮丧的。如果你曾经只为一个手稿花时间排版表,有一个审稿人认为你修改的分析在某种程度上改变了所有的表格,你应该明白我在说什么。或者每周或每月运行定期更新数据的报告。从长远来看,编写程序实现自动化 Excel 表格,可以为以后节省更多的时间。将消除手动创建表格时可能出现的错误。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号