Stata: 用 efolder 快速生成文件夹和子文件夹
编者按: 在计量学习以及数据处理和论文写作过程中,我们常常需要对不同文件和不同项目创建不同文件夹加以区分和管理,笔者在使用stata进行回归分析和程序处理时也时常需要新建文件夹,导致经常需要在窗口内进行切换和鼠标新建操作。本次推文为大家介绍一个新近编写的小程序 efolder ,用于快速生成文件夹和/或子文件夹,并默认将stata工作路径设置为新生成文件夹并在结果窗口提示其连接地址。
程序作者:Hou Xinshuo (houxinshuo@126.com)
1. efolder说明
efolder
-- easy folder ,为更加快速和便捷生成文件夹而生。在特定的情况下,我们需要重复或一次生成多个文件夹,并进行快速查看,基于 mkdir
笔者编写了一个文件夹创建小程序。
- 命令如下:
efolder [foldername] , [cd()] [sub] [nochange] [subname()]
其中,为便于使用,可简写为 ef
命令,当有新文件加生成,同时也会将当前工作路径设置到该文件夹; [foldername]
用于定义特定工作路径 ( 可通过选项 cd()
加以设定,可选 )下要生成的文件夹名称(名称可包含空格); cd()
选项可定义非当前工作路径中的位置; [subname()]
用于设定子文件名称,如书写为 sub(1 j k 25)
时,将生成 1 、 j 、 k 和 25 四个文件夹; [nochange]
可简写为 noc
,当该选项设置时,程序将不会改变 efolder
命令运行前的工作路径。
2. 下载方法
在 Stata 命令窗口中输入如下命令即可安装该命令:
- 第一种: (Note:网络状况不好可能提示服务器链接超时)
. ssc install efolder, replace
- 第二种:(Note: 亲测可顺畅安装)
. ssc des e
. net install efolder, replace
或输入 findit efolder
命令,或 search efolder
命令,在弹出页面中按指引点击链接下载即可。
3. 应用范例:
(1)无设定
. ef
结果展示:
输入图片说明
其中,蓝色部分表示为超链接,可通过鼠标点击打开相应文件夹。当不做任何设定时,将输出当前工作路径。
(此路径将因不同安装位置和 profile
设定的不同而有差异,推文中以笔者电脑为例展示。)
(2)设定路径
. efolder, cd(D:\stata15\hxs\连享会007)
结果展示:
输入图片说明
输入图片说明
当目的路径不存在时,ef
将生成该文件夹,并将工作路径更改至 cd()
提供的文件夹路径。
(3)设定路径与子文件夹
. efolder, cd(D:\stata15\hxs\连享会007) sub(侯新烁 连玉君 007小组1号成员 007小组2号成员)
结果展示:
输入图片说明
输入图片说明
可通过 sub()
选项在指定路径下生成子文件夹,Note:子文件夹名称以空格分割。
(4)设定路径、文件夹与子文件夹
. efolder 新成员 2018, cd(D:\stata15\hxs\连享会007) sub(新1 新2 新3)
结果展示:
输入图片说明
输入图片说明
当设定 [foldername]
时(可含有空格),将在指定 cd
下生成该文件夹并将工作路径更改到此位置,sub()
将在刚刚生成的文件夹内(在本例中即在文件夹 新成员 2018 内)生成相应子文件夹。
(5)不更改工作路径
. efolder 新成员 2019, cd(D:\stata15\hxs\连享会007) sub(明1 明2 明3) noc
结果展示:
输入图片说明
将生成新的文件夹和子文件夹
输入图片说明
但工作路径仍为本条命令执行前的工作路径,即 nochange
使得命令不改变之前的工作路径。
输入图片说明
4. 在循环中使用的范例:
foreach f in 侯新烁 连玉君 王小二 小黄鸡 小黄鸭 {
ef `f', cd(D:\stata15\hxs\连享会007\newproject) ///
sub(待完成 已完成 原始数据 程序) noc
}
可以通过循环的方式,依次按照成员生成文件夹,并设置相应子文件夹。
并可以与其他相关命令,如数据和文档的存储命令 save
、 erase
等配合使用。
5. 代码汇总:
. ef
. ef, cd(D:\stata15\hxs\连享会007)
. ef, cd(D:\stata15\hxs\连享会007) sub(侯新烁 连玉君 007小组1号成员 007小组2号成员)
. ef 新成员 2018, cd(D:\stata15\hxs\连享会007) sub(新1 新2 新3)
. ef 新成员 2019, cd(D:\stata15\hxs\连享会007) sub(明1 明2 明3) noc
. foreach f in 侯新烁 连玉君 王小二 小黄鸡 小黄鸭 {
ef `f', cd(D:\stata15\hxs\连享会007\newproject) ///
sub(待完成 已完成 原始数据 程序) noc
}
后记: 在do文件里就能easy的管理文件夹创建啦~~~
关于我们
- 【Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
- 公众号推文同步发布于 CSDN-Stata连享会 、简书-Stata连享会 和 知乎-连玉君Stata专栏。可以在上述网站中搜索关键词
Stata
或Stata连享会
后关注我们。 - 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
- Stata连享会 精彩推文1 || 精彩推文2
联系我们
-
欢迎赐稿: 欢迎将您的文章或笔记投稿至
Stata连享会(公众号: StataChina)
,我们会保留您的署名;录用稿件达五篇
以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。 - 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
- 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
- 联系邮件: StataChina@163.com
往期精彩推文
- Stata连享会推文列表1
- Stata连享会推文列表2
- Stata连享会 精彩推文1 || 精彩推文2
欢迎加入Stata连享会(公众号: StataChina)