stata中的profile.do文档
最近我在安装STATA15时就遇到这样的问题:软件安装在D盘但是外部命令下载的文件夹在C盘,那么怎么把外部命令的文件夹归并到D盘stata下面呢,解决方案就是这个profile.do文档。
每次一开机,Stata 会自动找到这个名为 profile.do 的文件,并执行里面的所有命令,显示为 unning D:\stata15\profile.do ...
根据我的经验,最重要的设定只有两个:
一个是设定文件路径,以便每次使用ssc install或github install等命令安装外部命令时,Stata 可以自动将下载的文件放到合适的位置,方便我们调用 (参见「Stata: 外部命令的搜索、安装与使用」);
另一个是开机是自动生成日志文件,记录在屏幕上显示的所有信息,以便于我们追踪自己的工作历程,在突然死机等突发情况下找回那些已经执行过但没有及时保存的代码
设定外部命令的下载路径
profile.do 文件中最核心的命令就两条:(详情参见 help sysdir 和 help set)
*-外部命令的存放位置 (下载路径)
sysdir set PLUS "`c(sysdir_stata)'ado\plus"
*-个人文件夹位置
sysdir set PERSONAL "`c(sysdir_stata)'ado\personal"
这里,sysdir set PLUS ……指定了日后外部命令的存放位置:在 Stata 安装路径下的ado\plus子文件夹中。其中,`c(sysdir_stata)'是一个暂元,里面存放了 Stata 的安装路径:输入sysdir后显示的第一个文件路径。例如,我的 stata15 存放于D盘根目录下,所以,`c(sysdir_stata)' = D:\stata15。
补充说明:
你可以临时更改外部命令的下载路径,命令为:
net set ado dirname(存放.ado和.hlp文件的路径);
net set other dirname(存放作者提供的数据文件和范例 dofiles 等附件文件)。
开机自动生成日志文件
在 Stata 中,可以配合使用log using filename和log close命令来开启和关闭日志文件。对于老用户来讲,这显得很麻烦。在profile.do文件中添加如下几行命令就可以实现自动生成以开启 Stata 的时间为文件名称的日志文件:
cap cd `c(sysdir_stata)'do
if _rc{
mkdir `c(sysdir_stata)'do //检测后发现无 do 文件夹,则自行建立一个
}
local fn = subinstr("`c(current_time)'",":","-",2)
local fn1 = subinstr("`c(current_date)'"," ","",3)
log using `c(sysdir_stata)'do\log-`fn1'-`fn'.log, text replace
cmdlog using `c(sysdir_stata)'do\cmd-`fn1'-`fn'.log, replace
前面四行语句用于确认 Stata 安装目录下是否有【do】文件夹,如果没有就自动新建一个。
后面四行用于从电脑中的日期和时间中去除字符串,将其作为新生成日志文件的文件名。主要的好处是,即使你一天内开启-关闭无数次 Stata,日志文件都不会重名:光阴滚滚向东流呀!
下面是我的【D:\stata15\do】文件夹下自动存放的日志文件:
其他的设定可以自行选择
网友评论