[h2][/url][/h2]作者: 刘聪聪 (中山大学)
Stata 连享会: 知乎 | 简书 | 码云 [url=http://mp.weixin.qq.com/s?__biz=MzAwMzk4ODUzOQ==&mid=2247485104&idx=1&sn=8c47b6a91d36cd81fc57f9b9cdd550b6&chksm=9b338be4ac4402f2e2b7358a827202258691bdd76d656d07eca27ce50905f1d47dd6042e0071&scene=21#wechat_redirect]python 爬虫与文本分析专题-现场班
命令旨在将一个Stata单元格的内容分成不同的列,主要适用于从 PDF 文件中提取数据并以简单的方式管理。使用此命令可将选定的数据转换为表格,将文本拆分为不同的列。
该命令可以将以逗号、空格分隔的表格 (无法直接粘贴到 Excel 中) 转换成以 Tab 分隔的表格,同时采用选项可达到去掉 %、千分位 等符号的效果。
[h1]1.tex2col 命令简介[/h1][h2]下载和安装[/h2]使用如下命令可以自动下载命令:
- ssc install tex2col, replace
复制代码 [h2]帮助文件和语法格式[/h2]- help tex2col //Split Text into Columns
复制代码
各个选项的含义如下:
选项解释Number of columns with dataName of the variable that contains the dataColumn namesRow nameConvert data with commas as decimals to period-decimal formatRemove specified non-numeric characters[h1]2.Stata 范例[/h1]Example 1: 逗号分隔的文本文件 → 表格 - "Chaco Hamedo 16,6 25,1 21,5 881,5 58 73 66"
复制代码- "Chaco Seco 16,2 24,3 21,3 736,1 60 79 71"
复制代码- "Valles Centrales 14,7 18,3 16,9 721,4 50 74 62"
复制代码- "Valles del Sur 12,2 18,1 16 351,3 40 70 53"
复制代码
- tex2col, data(data) col(7) dpcomma // dpcomma: 把逗号转换成句点
复制代码 结果如下:
- row col_1 col_2 col_3 col_4 col_5 col_6 col_7
复制代码- 1. Chaco Hamedo 16.6 25.1 21.5 881.5 58 73 66
复制代码- 2. Chaco Seco 16.2 24.3 21.3 736.1 60 79 71
复制代码- 3. Valles Centrales 14.7 18.3 16.9 721.4 50 74 62
复制代码- 4. Valles del Sur 12.2 18.1 16 351.3 40 70 53
复制代码 注意事项:
- 使用输入数据时,由于变量都是字符串类型,所以每一行观察值都要用半角双引号包围。
- 命令中的选项是必填项,# 需要根据数据的列数自行指定。
Example 2: 空格分隔的文本文件 → 表格
- tex2col, data(data) col(2) ignore(%)
复制代码 结果如下:
- +-----------------------------------------------------+
复制代码- |-----------------------------------------------------|
复制代码- 1. | Argentina 2011 18.7 Argentina 2011 18.7% |
复制代码- 2. | Bolivia 2011 .4 Bolivia 2011 0.4% |
复制代码- 3. | Brasil 2011 3.6 Brasil 2011 3.6% |
复制代码- 4. | Chile 2011 1.7 Chile 2011 1.7% |
复制代码- 5. | Colombia 2011 5.2 Colombia 2011 5.2% |
复制代码- |-----------------------------------------------------|
复制代码- 6. | Costa Rica 2010 8 Costa Rica 2010 8.0% |
复制代码- 7. | Ecuador 2011 3.1 Ecuador 2011 3.1% |
复制代码- 8. | El Salvador 2010 .3 El Salvador 2010 0.3% |
复制代码- 9. | Honduras 2011 3 Honduras 2011 3.0% |
复制代码- 10. | Mexico 2010 3.1 Mexico 2010 3.1% |
复制代码- |-----------------------------------------------------|
复制代码- 11. | Panam 2011 .6 Panam 2011 0.6% |
复制代码- 12. | Paraguay 2010 .9 Paraguay 2010 0.9% |
复制代码- 13. | Per 2011 24.1 Per 2011 24.1% |
复制代码- 14. | Uruguay 2011 4.3 Uruguay 2011 4.3% |
复制代码- 15. | Venezuela 2011 10.3 Venezuela 2011 10.3% |
复制代码- +-----------------------------------------------------+
复制代码 注意事项:
- 命令中的选项是选填项,chars 根据数据的特征自行指定。
- "738 0.802 0.802 4,527 0.708 5.33 0.000"
复制代码- "738 0.560 0.560 4,527 0.398 8.28 0.000"
复制代码- "738 0.420 0.420 4,527 0.114 22.16 0.000"
复制代码- "738 0.225 0.225 4,527 0.068 14.10 0.000"
复制代码- "738 0.234 0.234 4,527 0.101 10.44 0.000"
复制代码
- tex2col, data(data) col(7) cname(v) ignore(,)
复制代码 结果如下:
- 738 .802 .802 4527 .708 5.33 0
复制代码- 738 .56 .56 4527 .398 8.28 0
复制代码- 738 .42 .42 4527 .114 22.16 0
复制代码- 738 .225 .225 4527 .068 14.1 0
复制代码- 738 .234 .234 4527 .101 10.44 0
复制代码 注意事项:
- 命令中的选项是选填项,定义拆分后的列名。
- 须保持原始数据中某一列数据类型一致,否则命令不能奏效。详细说明如下:
- "738 0.802 0.802 4,527 0.708 5.33 0.000"
复制代码- "738 0.560 0.560 4,527 0.398 8.28 0.000"
复制代码- "738 0.420 0.420 4,527 0.114 22.16 0.000"
复制代码- "738 0.225 0.225 4,527 0.068 14.10 0.000"
复制代码- "738 0.234 0.234 4,527 0.101 10.44 0.000"
复制代码
- tex2col, data(data) col(7) cname(v) ignore(,)
复制代码 当将第一行、第四列的数据 改为,这个时候第四列的数据类型就有字符型和数值型两种类型。而经过命令处理后,可以发现第四列的数据类型全部变成了字符型了。这也就说明,在执行的时候会判断某一列的数据类型,如果这一列中有字符型,那么选项自然就失去作用了。
image.png[h3]其他文本分析命令[/h3]- // 文字变量的清理 , Stata Journal 10-3
- // 文字变量的清理 , Stata Journal 14-4
- // 多个文本的对比
- // 修改文件名称
- // 替换文字变量的内容
- 【Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
- 公众号推文同步发布于 CSDN-Stata连享会 、简书-Stata连享会 和 知乎-连玉君Stata专栏。可以在上述网站中搜索关键词或后关注我们。
- 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
- Stata连享会 精彩推文1 || 精彩推文2
- 欢迎赐稿: 欢迎将您的文章或笔记投稿至
- Stata连享会(公众号: StataChina)
复制代码 ,我们会保留您的署名;录用稿件达以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
- 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
- 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
- 联系邮件: StataChina@163.com
欢迎加入Stata连享会(公众号: StataChina)[h2]一起学空间计量……[/h2][url=http://mp.weixin.qq.com/s?__biz=MzAwMzk4ODUzOQ==&mid=2247485064&idx=1&sn=58e05c5ef029356ddfe71cb6defefd4b&chksm=9b338bdcac4402caebd7ff2e33af05ad0133351e277040f5d365a3da2fdbf2d6036fe75f9789&scene=21#wechat_redirect][/url]
|
|