将标量从 sif 转换为 hrf

Convert scalar from sif to hrf

我正在遍历一组包含季度 sif 值的标量。我想将它们转换为 hrf 格式并将它们存储在标量中。

但是,我发现format %tq只接受变量。因此,唯一的解决方法似乎是 i) 将标量转换为变量 ii) 应用 format %tq iii) 将变量转换为标量。

有没有更优雅、更快速的方法来做到这一点? (我使用的是 Stata MP 15.1。)

你可以有字符串标量,所以你可以这样做。我不明白为什么它会有用,但这可能是想象力的失败;你可以告诉我们你为什么想要这个。

. scalar foo = yq(2018, 4)

. scalar foo = string(scalar(foo), "%tq")

. scalar list
       foo = 2018q4

标量的完全不同之处在于,显示格式附加到标量或与标量相关联是没有任何意义的。您可以在标量中保存数字日期或字符串日期,但这些是唯一的选择。您不能在 Stata 将在适当时用于显示的一侧使用带有格式的数值。当您尝试 format 一个标量时,您发现了这一点。

天知道这是更快(比什么?)还是更优雅(谁来决定?)。主要区别在于,一个变量显然可以包含许多日期,并且使用 format 更改一次的格式可以始终如一地应用于它们,而到目前为止,每次更改显示一堆标量的方式都需要一个循环我所看到的。此外,从上面可以看出,您可能需要保留两组标量,一组用于计算,一组用于显示。

我使用过日期常量,通常发现我要么直接使用它们(减去 2000 作为基数不需要将它放入任何东西),要么我使用本地宏来保存它们。但是我看不出使用标量有什么问题,除了可能是间接的。