多个html文件内容合并_stata-如何快速合并多个文件夹下的数据文件

本文详细介绍了如何使用Stata处理多个含有CSV数据的文件夹。通过循环语句,利用rcd获取文件夹信息,openall合并CSV文件,并最终将所有数据保存为DTA格式。难点在于进入不同文件夹及合并文件,解决方案是利用rcd和openall命令。代码实现了按年份命名的.dta文件合并,便于后续的数据面板处理。
摘要由CSDN通过智能技术生成

从各种数据库中下载下来.csv文件后,这些文件往往都会存在1998-2019等多个文件夹中。而且这些.csv文件都是以中文命名的没有规律的文件。而处理数据往往是要对这整个面板数据处理的。因此,如何合并成一个数据文件就成为了一个难题。

解决思路与难点

解决思路

使用循环语句对各个文件夹进行处理。并将处理好的文件存储到一个新文件夹内。然后再将这个文件夹内的所有数据合并为一个.dta文件。

难点

如何通过命令进入各个文件夹以及如何快速合并各个文件夹内的.csv据。

对策

使用rcd获取文件夹的信息。并存储到暂元中
使用openall合并.csv或.dta文件。
使用cd进入各个文件夹中
参见help rcdhelp openall,help cd
若有命令stata提示未安装,可使用ssc install openall命令进行安装。

代码的实现

代码

qui rcd
local k = 1997 //当前文件夹
forvalues i = 1(1)`r(tdirs)'{
  cd `c(sysdir_personal)'TFPexample
  qui rcd
  cd "`r(ndir`i')'"
  openall *,insheet //合并当前文件数据
  local k = `k' + 1
  dis `k' //作者本人为了方便查看代码运行结果
  cd `c(sysdir_personal)'TFPdata //将文件全部保存至data
  save `k'.dta ,replace //保存为.dta文件,以年份命名
  clear
	}

代码的详细介绍

qui rcd是获取当前文件夹下所有文件的目录。运行此命令后,结果如下

40da883f44d6832d8ceb8322c266e750.png

使用return list命令查看存储

0057aa12523322e1e8155d2acc632073.png

如图可以看到暂元r(tdirs)中存储的是共有多少个文件夹.
暂元r(ndiri)中存储的是各个文件夹的路径名。openall *,insheet是合并当前文件夹下的所有.csv文件。如果不加option选项insheet则是合并所有.dta文件。

注意在循环语句中也是要用 rcd命令重新获取当前文件的路径。否则循环一次便会进入data路径内。
且每个读者需自行选择进入那个文件夹以适配自己的需要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值