找到两个变量名称标量的并集

km5*_*041 1 string local stata stata-macros

我有一个Stata程序,它输出一个空格分隔的变量名称的局部标量.

我有两个样品(两次一样运行程序dta)和工会(路口-出现在这两个标量变量名)存储为一个新的空间分隔的局部标(用于输入到另一个程序).

我无法弄清楚如何分割(每个空格)和/或测试每个变量名称的出现.

Dim*_*rov 5

Stata有一堆扩展的宏函数可以在你可以找到的列表中使用help macrolists,你可以看到A和B返回A和B的交集.如果A ="abc d"而B ="bcf g",那么A&B ="bc".

这允许你做这样的事情:

clear
scalar l1="vara varb varc"
scalar l2="varc vard vare"
local l1 = scalar(l1)
local l2 = scalar(l2)
local inter: list l1 & l2
scalar inter="`inter'"
scalar list inter
Run Code Online (Sandbox Code Playgroud)

您将标量转换为本地,获取它们的并集,并将其转换为标量.修改代码以使用本地代码而不是标量可能更容易,因此您无需处理转换.