use*_*459 2 stata stata-macros
考虑下面的代码片段:
local date: display %td_CCYY_NN_DD date(c(current_date), "DMY")
local date_string = subinstr(trim("`date'"), " " , "", .)
save "`date_string'_example", replace
mkdir "`date_string'_example"
Run Code Online (Sandbox Code Playgroud)
这将创建如下输出:
20170521_example.dta
Run Code Online (Sandbox Code Playgroud)
但是,我想创建一个文件名,它也要有时间,而不仅仅是日期。如果时间是下午4点25分01秒,那么我希望具备以下条件:
20170521_162601_example.dta
Run Code Online (Sandbox Code Playgroud)
如何添加此元素?
我尝试将函数放入c(current_time)其中,date()但这没有用。
此外,我试图分配本地宏savedir使用date_string。但是,似乎Stata在后面跟随时无法识别它\:
local date: display %td_CCYY_NN_DD date(c(current_date), "DMY")
local date_string = subinstr(trim("`date'"), " " , "", .)
local savedir "C:\Users\`date_string'_output"
cd "`savedir'
Run Code Online (Sandbox Code Playgroud)
如何保存本地宏savedir?
您可以按以下方式获得所需的输出:
local datetime_string : display %tc_CCYYNNDD_HHMMSS clock(c(current_date) + " " + ///
c(current_time), "DMYhms")
Run Code Online (Sandbox Code Playgroud)
关于第二个问题,只需将\文件路径替换为/。
Stata可以在所有操作系统上的文件路径中使用正斜杠,并且Stata将注意在Windows上正确转换它们。