我正在寻找适当的语法,用于从矩阵中提取最大值并将其存储在传统Stata .do文件程序的局部变量中。
例如,在矩阵中:
matrix X = (1,2,3 \4,5,6\7,8,9)
该函数应返回数字9。
我查看了Mata手册,发现了对Mata的colmax
,colmin
和max
函数的引用,但我似乎无法让它们发挥作用。
答案 0 :(得分:0)
你应该展示对代码的尝试以及在你做错的事情上获得建设性建议的情况。
考虑
. mata: max((1,2\3,4))
4
. mat x = (1,2\3,4)
. mata : max(st_matrix("x"))
4
. mata: st_local("max", strofreal(max(st_matrix("x"))))
. di `max'
4
术语“局部变量”与Stata不同;变量是数据集中的变量(列)(仅)。标准术语是“本地宏”。当然,在许多其他语言中,这样的实体将被视为变量。
将最大值传递给Stata作为数字标量通常是一个更好的主意。相反,您最可能缺少的是严格地说本地宏是一个字符串,因此您必须将其值作为字符串返回。