date - 如何在 Stata 中编写一个宏来识别标题中具有最新日期的文件?
问题描述
我正在使用 Stata 中的一组 .dta 文件,每个文件都需要一些时间来创建,每个文件都包含文件名中的创建日期(在保存时使用带有今天日期的宏创建)。
目前,我的 do 文件根据今天的日期宏识别要打开的相关 .dta 文件,但这需要我每天运行代码来创建 .dta 文件。
一旦我运行“cd”命令,有没有办法让 Stata 从文件夹中具有相同文件名词干和不同日期的一组文件中识别最近日期的文件(然后打开它)?我查看了 Statalist 和 SO,但看不到答案 - 任何建议都非常感谢。
例如,在文件夹中,我有文件 2020-08-23_datasetA.dta、2020-08-22_datasetA.dta、2020-08-22_datasetB.dta 等,在不同的点上,我会选择 A 的最新版本, B, C 等。因此不要认为简单的排序会起作用,因为有数据集 A、B、C 在起作用。
(我的问题本质上是关于 R - Loading files with the latest date in R的 Stata 版本)
[编辑澄清有多个数据集,每个数据集都有日期,每个数据集都需要在不同的时间点打开]
解决方案
显然,特定文件夹中的两个或多个文件不能具有相同的名称。但我们知道你的意思。
来自 SSC的实用程序fs
将返回与模式匹配的文件名列表,按字母数字排序。根据您的约会约定,最后命名的将是最新的,因为您的日期遵循(年、月、日)顺序。
对文件名的其余部分使用另一种约定不会破坏这一点,但您自然需要拼出感兴趣的文件子集。所以一个模式是
. ssc install fs
. fs *datasetA.dta
. local wanted = word(r(files), -1)
安装只需进行一次。fs
您可以通过调用它使用的官方 Stata 来规避。
也许您正在寻找一个程序,但我不清楚您是否需要一个程序。
小细节:您使用宏这个词的方式与它的 Stata 意义不符。例如,Stata 不是 SAS!术语代码、例程和脚本是通用的,与任何 Stata 使用不冲突。相反,代码、例程或脚本在您使用的其他软件中可能具有固定的含义。无论哪种方式,最好使用 Stata 术语来表达 Stata 问题。
推荐阅读
- azure - Azure Cosmos 2020 年 6 月更新 - Gremlin API - “包含”不区分大小写?
- tinymce - 如何禁用 TinyMCE 自动文本替换
- reactjs - 在 react 中为特定组件添加 style.css
- django - Django 为 rest APIView 捕获的可选 URL 值
- css - CSS - 右下角的位置?
- css - Angular 10 + SCSS:浏览器在使用@font-face 时不请求字体
- java - 无法使用 Selenium Java 自动注销 Amazon.com
- javascript - 如何知道子元素在 CSS 网格容器中的位置?
- spring-data-jpa - 与外键关联的三个表上的 jpa 映射
- amazon-web-services - 我可以将 CloudFront 与 EFS 一起使用,其中内容在用户之间拆分吗?