用循环 Stata 命名矩阵行

问题描述 投票:0回答:1

我有一个维度为

4x2
的矩阵。我想用一个循环来命名行,该循环对标量求和并添加到行名称中。

例如。来自这样的事情:

      c1 c2
  r1  0  0
  r2  0  0
  r3  0  0
  r4  0  0

我想要这个:

       c1  c2
  _0_3  2   1
  _1_4  4   3
  _2_5  6  -2
  _3_6  8  -4

这是我的代码:

mat WALD = J(4, 2, 0)

forval c = 0/3 {
    local i = `c'
    local z = 3 + `c'
    matrix rownames WALD[`c' + 1] = "_`i'_`z'"
}
matrix stata local r-rownames
1个回答
0
投票

语法是一次性分配所有行名称。因此,您需要将最后一条语句从循环中取出。

mat WALD = J(4, 2, 0)

forval c = 0/3 {
    local z = 3 + `c'
    local names `names' _`c'_`z'
}

matrix rownames WALD = `names'

mat li WALD 

WALD[4,2]
      c1  c2
_0_3   0   0
_1_4   0   0
_2_5   0   0
_3_6   0   0

这可以压缩成更短但更神秘的代码。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.