stata编程

发布时间 2023-04-18 08:08:15作者: myrj
// 标量(scalar),用于存储稍后要调用的数值或字符串。r类对象和e类对象的结果都包含标量。命名标量时要注意优先级问题:如果一个变量和一个标量同名,Stata将认为用户正在调用该变量
sca x1=6
sca a1="hello world"
disp x1 a1
scalar list
// 宏(macro)是链接到文本的名称。全局宏具有全局作用域,可以在整个Stata中使用。注意全局变量的使用,因为它们可能导致命名冲突。调用自带数据集
// 全局宏使用global语句,例如定义全局地址、定义一组变量:

global path "D:\Download"
cd $path

global myGlobal price mpg length
su $myGlobal
局部宏使用local语句,只在函数(program)、循环(loop)或者 .do文件里面使用:

local myLocal price mpg length
su `myLocal'
// 注意,全局宏的调用采用的是美元符号($),而局部宏的调用采用的是两个不同的撇符号(`')。
sysuse auto,clear
levelsof rep78, local(levels)
foreach x of local levels {
 di in yellow "`x' is a unique value of rep78"
}
// 1 is a unique value of rep78
// 2 is a unique value of rep78
// 3 is a unique value of rep78
// 4 is a unique value of rep78
// 5 is a unique value of rep78
local varLab: variable label foreign
di "`varLab'"
local varLab2 = strtoname("`varLab'")
rename foreign `varLab2'