文件太多乱乱的?合并一下吧!
本文作者:李钊颖
文字编辑:朱巧利
导读
如果我们想将一大堆“.csv”数据全部导入到stata里面,要怎么做呢?当然,我们可以先将所有的“.csv”文件转化为“.dta”文件,然后使用append命令进行合并,但好像有点麻烦。其实我们可以利用csvconvert命令一键生成“.dta”文件,csvconvert命令将一组“.csv”文件导入到一个文件中,该文件以“.dta”格式保存,可以立即读到Stata中,很是方便。我们一起来了解下这个命令吧!
一、csvconvert命令的语法及常用选项
csvconvert,顾名思义是将“.csv”格式的文件转换为别的格式。该命令是外部命令,需要通过“ssc install csvconvert”安装之后才能使用。命令的基本语法为:
csvconvert input_directory , replace [options]
output_file(file_name):设置输出的文件名。是“.dta”文件的名称,默认设置是“output.dta”。
output_dir(output_directory):设置输出路径。是保存输出文件的目录,默认是输入文件的路径。
input_file(.csv file list):选择要合并的文件。就是放在input_directory中要转换的文件,我们要为列表中包含的每个文件名指定扩展名“.csv”。如果没有指定该选项,csvconvert命令将把存储在input_directory中的所有“.csv”文件都当成合并文件。
二、csvconvert命令的用法示例
这个命令适用于我们有多个数据文件,这些文件的不同之处在于具有时间周期性的变量,比如说year变量,此时csvconvert命令就能很方便的把多个文件合并为一个dta文件。下面我们举个小例子来熟悉一下这个命令。
首先我们清空内存,看一下该文件夹下待合并的csv文件:
clear all
dir E:\推文\csvconvert\worldbank\*.csv
下面的命令创建output.dta,并将其保存在目录中:
csvconvert E:\推文\csvconvert\worldbank, replace
默认情况下,csvconvert命令会创建一个新变量“_csvfile”,该变量包含原“.csv”文件的名称。在转换过程的末尾,csvconvert会显示一条消息,其中包含“.dta”文件中包含的原始.csv文件的编号(上图中红框中的4表示目录下的四个文件都已成功转换)。这可以帮助我们再次检查所有“.csv”文件是否成功转换为“.dta”文件。查看原路径,可以发现路径下面多了output.dta文件。
输入note显示已转换的csv文件的完整列表,这些文件包含在output.dta文件中:
note
合并后的数据按年份降序排列:
下面的命令指定合并文件的名称为“wb_data”。并将其保存在缺省目录下的数据集中:
csvconvert E:\推文\csvconvert\worldbank, replace output_file(wb_data.dta) output_dir(E:\推文\csvconvert\worldbank)
当然我们也可以选择不把全部文件合并,input_file选项可以帮我们只把选定文件进行合并。下面的命令只合并选定的csv文件“wb2008.csv”和“wb2009.csv”,结果如图所示:
csvconvert E:\推文\csvconvert\worldbank, replace input_file(wb2008.csv wb2009.csv)
关于我们
微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。