【发布时间】:2017-09-23 16:13:15
【问题描述】:
我正在寻找合适的语法来从矩阵中提取最大值并将其存储在传统 Stata .do 文件程序的局部变量中。
例如在矩阵中:
matrix X = (1,2,3 \4,5,6\7,8,9)
函数应该返回数字 9。
我查看了 Mata 手册并找到了对 Mata 的 colmax、colmin 和 max 函数的引用,但我似乎无法让它们工作。
【问题讨论】:
我正在寻找合适的语法来从矩阵中提取最大值并将其存储在传统 Stata .do 文件程序的局部变量中。
例如在矩阵中:
matrix X = (1,2,3 \4,5,6\7,8,9)
函数应该返回数字 9。
我查看了 Mata 手册并找到了对 Mata 的 colmax、colmin 和 max 函数的引用,但我似乎无法让它们工作。
【问题讨论】:
您应该展示对代码的尝试以及发生了什么,以便就您做错的地方获得建设性的建议。
考虑
. 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 通常是一个更好的主意。相反,您最有可能遗漏的是严格来说本地宏是一个字符串,因此您必须将其值作为字符串返回。
【讨论】: