问题标签 [stata-macros]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
276 浏览

stata - Adding time in a file name

Consider the code snippet below:

This creates output as follows:

However, I want to create a file name which also has time, not just date. If the time is 4PM 25 min 01 sec, then I wish to have the following:

How can I add this element?

I tried putting c(current_time) inside the date() function but that did not work.

Also, I tried to assign a local macro savedir using the date_string. However, it seems Stata can't recognise it when it is followed by \:

What should I do to save the local macro savedir?

0 投票
1 回答
1134 浏览

list - Stata 宏列表 uniq 扩展函数(从宏 var 列表中删除重复项)

此问题已被编辑以添加示例数据并清理(希望)每个反馈的一些不必要的步骤。

我从宽格式的纵向数据开始。我需要对多个不同的数据块进行子集化、重塑和执行汇总步骤。我想使用 varlists 创建宏变量,以便以宽格式和长格式进行整形和其他重复步骤。被重塑的变量遵循一致的命名模式(prefix)_(name)_#. 还有一些遵循相同模式的变量不需要重新整形,还有一些变量是时不变的并遵循其他命名约定。要生成样本数据:

我想创建两个宏变量 1)wide_varlist用于变量以数字结尾的宽格式数据和 2)uniquestubs用于宏列表仅包含存根的长格式数据。我无法使用宏列表扩展函数“uniq”在此处生成#2。到目前为止,这是我的代码。我的完整变量列表实际上要长得多。

使用宽格式 varlist 创建宏的步骤:

开始使用长格式 varlist 创建宏的步骤:

上面的一切都按我的意图工作,直到global uniquestubs : list uniq stubs,它根本不创建宏uniquestubs

我的情况似乎与this question类似,但相同的解决方案对我不起作用。

有什么想法吗?感谢帮助。

0 投票
1 回答
172 浏览

error-handling - 当未定义全局宏而不是缺少字符串时,是否可以让 Stata 默认抛出错误?

Stata 有时不方便的一个特性是调用未定义的宏会返回缺失值.[编辑:Stata 实际上返回缺失字符串"",而不是数字缺失值],而不是抛出错误。一段代码,其正确执行需要定义宏,如果宏名称拼写错误,可能会运行并给出不正确的结果。

例如:定义 global $options = , vce(robust)了 ,当之后写reg y x $opt 而不是reg y x $options程序运行时,可能很难意识到vce()没有考虑该选项。

在这种情况下,是否有任何方法可以强制 Stata 发出错误,或者是否有一些有用的技巧/最佳实践可用于降低发生此类错误的风险?

0 投票
1 回答
352 浏览

matrix - 创建可扩展的 varlist

我试图将两个数据文件转换为 Stata 中的矩阵。

在第一个数据文件中只有10列,所以我使用了:

但是,第二个数据文件包含多个100列。

我是否必须手动包含mkmat所有变量名,或者有更好的方法来做到这一点?

0 投票
2 回答
742 浏览

r - How do I create a "macro" for regressors in R?

For long and repeating models I want to create a "macro" (so called in Stata and there accomplished with global var1 var2 ...) which contains the regressors of the model formula.

For example from

I want something like:

I could find is this approach. But my application on the regressors won't work:

as it throws me:

Even the accepted answer of same question:

strikes and shows me:

And of course I tried as.matrix(regressors) :)

So, what else can I do?

0 投票
2 回答
134 浏览

string - 查找两个变量名标量的并集

我有一个Stata 程序,它输出以空格分隔的变量名的本地标量。

我必须在两个样本(相同dta)上运行该程序两次并将联合(交集 - 出现在两个标量中的变量名称)存储为新的空格分隔的本地标量(用于输入到另一个程序)。

我不知道如何拆分(每个空格)和/或测试每个变量名的出现。

0 投票
2 回答
524 浏览

stata - foreach 命令宏中的多个本地

我有一个包含多个子组(变量economist)和日期(变量temps99)的数据集。

我想运行一个tabsplit不接受bysort或不带by前缀的命令。所以我创建了一个宏来将我的tabsplit命令应用于我的数据中的每个子组。

例如:

对于每个子组,Stata 运行tabsplit命令,我使用变量nbcateco来存储计数结果。

我对日期做了同样的事情,所以我可以随着时间的r(r)推移而演变:

现在我想economist按日期对每个子组执行此操作temps99。我尝试了多种组合,但我对宏不太擅长(还没有?)。

我想要的是能够r(r)随着时间的推移为我的每个子组拥有我的。

0 投票
2 回答
291 浏览

stata - Stata输入命令不允许本地宏

input我在Stata的命令中发现了这种奇怪的行为。

当您将本地宏作为一个变量或多个变量的参数传递时,该input命令会给出以下错误:

'`' 不能读取为数字

以下是两个给出相同错误的示例:

有没有办法将宏传递给input命令?

0 投票
2 回答
788 浏览

graph - 对数图的自动标记

我想自动化 Stata 13 中一系列绘图的图形轴值。特别是,我想通过提供轴选项宏来显示轴标签,如10^-10、等。10^110^2

以下博客文章中的解决方案提供了一个很好的起点:

我还可以使用“10{sup:`x'}”生成更好的标签。

但是,我找不到以下附加元素的解决方案:

  1. 轴标签的范围将从10^-1010^10。此外,我的基线是ln,所以日志值是2.34.6等。特别是,下面的行仅将整数作为输入:

    /li>
  2. 我想通过图形强制轴值的范围(例如,特定轴从10^-210^5)。我知道range()只扩展轴,但不允许修剪它们。

关于上述任何一个或两个的任何想法?

这是 R 或 Python 中非常简单的输出,即使是标准的,没有很多额外的参数,但不幸的是在 Stata 中不是这样。

0 投票
1 回答
181 浏览

global - 如何在Stata的全局宏中嵌套全局宏?

我想在Stata的全局宏中放置一个全局宏

比如 ,$hello$oneworld就是宏$one里面的全局宏$helloworld

如何在全局宏中获取全局宏?