温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh
作者:连玉君 (中山大学)
E-Mail: arlionn@163.com
目录
图 1
);turnover
变量是文字型变量,需要使用 destring
命令将其转换为数值变量;(b) 将这 3500 个数据文件纵向合并起来 (append);forvalues
语句无法奏效,因为文件名对应的数字不连续;
foreach
语句对无规则的文件名进行循环处理;dir
命令以及暂元的高级功能,将 dir
查询到的文件名存放到一个暂元 s
中,随后在循环语句中从 s
暂元中提取文件名;s
中,可以使用如下语句(详情参见 help macro
,以及 help extended_fcn
): local s: dir "D:\data\idata'" files "*.dta", respectcase
执行如下语句可以在屏幕上呈现暂元 s
中存放的内容,如 图 3 所示:
. local s: dir "D:\data\idata'" files "*.dta", respectcase
. dis `"`s'"'
)
global d "D:\data\idata"
cd "$d"
local s: dir "`d'" files "*.dta", respectcase
foreach i in `s' {
use "`i'", clear
dis in red "ID = `i'" //可以不要,只是为了标示公司代码
destring turnover, replace force
qui save "`i'", replace
dis "." _c //屏幕打点,纯属娱乐
}
使用 append
命令可以合并纵向合并文件中的 3500 个文件,但有一个棘手的问题:使用 append
命令时,必须先将第一份数据调入内存,然后将剩余的 3499 份文件追加到这份文件的尾部。
然而,我们的数据文件名称是没有特定规则的,这就需要采用一种自动提取文件名的机制。此时,可以使用 gettoken
或 tokenize
命令对暂元 s
进行切割,其包含的第一个单词就是第一个文件的名称。这里以 gettoken
为例进行说明。
local a "Jack Rose Make Love"
gettoken s1 s2: a, parse(" ")
dis "`s1'"
dis "`s2'"
结果如下:
. dis "`s1'"
Jack
. dis "`s2'"
Rose Make Love
可见,gettoken
的作用是将暂元 a
的内容按照我们的要求以空格 (parse(" ")
的作用) 为切割点,分成两部分,第一空格之前的部分存入暂元 s1
,剩余部分存入暂元 s2
。
* 4.1 方法1:使用 foreach 语句
local s: dir "$d" files "*.dta", respectcase
gettoken f1 frest: s, parse(" ")
dis "`f1'" //第一个文件的名称
dis `"`frest'"' //其他文件的名称
use "`f1'", clear
foreach i of local frest {
append using `i'
}
save "D:\data\idata_all01.dta", replace //保存合并后的数据
若使用外部命令 openall
,则上述繁杂的处理过程会简化成一条极其简洁的语句:
cd "D:\data\idata" // 将要合并该文件夹下的所有文件
openall * // 纵向合并当前工作路径下的所有文件
save "D:\data\idata_all02.dta", replace //保存合并后的数据
可以使用如下命令安装外部命令 openall
:
ssc install openall, replace
详细语法格式参见:help openall
。
有兴趣的话,你可以对比一下上述两份最终文件是否有差异。
连享会-直播课 上线了!
http://lianxh.duanshu.com
免费公开课:
直击面板数据模型 - 连玉君,时长:1小时40分钟,课程主页 Stata 33 讲 - 连玉君, 每讲 15 分钟. Stata 小白的取经之路 - 龙志能,时长:2 小时,课程主页 部分直播课 课程资料下载 (PPT,dofiles等)
支持回看
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 因果推断, 空间计量,寒暑假班等 | |
⭕ 数据清洗系列 | 游万海 | 直播, 88 元,已上线 |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会学习群-常见问题解答汇总:
✨ https://gitee.com/arlionn/WD
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh