Matrix 如何在Stata上创建二维矩阵
如果下面的问题不是关于“二维”矩阵,那么很抱歉,但我认为二维矩阵就是这样定义的 我试图创建一个矩阵,在这里我想要一个收入五分位数的变量“X”的平均值。我为X创建了矩阵,如下所示:Matrix 如何在Stata上创建二维矩阵,matrix,stata,Matrix,Stata,如果下面的问题不是关于“二维”矩阵,那么很抱歉,但我认为二维矩阵就是这样定义的 我试图创建一个矩阵,在这里我想要一个收入五分位数的变量“X”的平均值。我为X创建了矩阵,如下所示: tabstat X [aw=weight] if location==1 & own==1, by(inc_quint) save tabstatmat X, nototal return list matrix urbown = (r(Stat1) \ r(Stat2) \ r(Stat3) \ r(
tabstat X [aw=weight] if location==1 & own==1, by(inc_quint) save
tabstatmat X, nototal
return list
matrix urbown = (r(Stat1) \ r(Stat2) \ r(Stat3) \ r(Stat4) \ r(Stat5))
matrix rownames urbown = `r(name1)' `r(name2)' `r(name3)' `r(name4)' `r(name5)'
matrix list urbown
svmat urbown
这为变量X创建了矩阵,但当我按收入五分位数对数据进行排序时,它不会按五分位数给我数据,因此我想知道如何在矩阵中也包括五分位数。任何帮助或提示都会很有帮助 所有矩阵都有行和列,即使其中一个矩阵的数目为1。所有的矩阵都是二维的。你想要的只是一张特殊的(单向)桌子。虽然您的代码以
svmat
结尾,但您并没有详细说明为什么需要矩阵:需要Stata矩阵的主要原因是为了进一步操作它
有许多方法可以将手段表转换为适合进一步使用的形式。这里有一个:使用collapse
获取新的数据集。这个例子有点做作,但表明没有什么可以排除的,比如在代码中,(1)权重(2)一个if
限定符,以及(0)使用五向分解,或类似的方法
. sysuse auto, clear
(1978 Automobile Data)
. collapse price [aw=weight] if !foreign, by(rep78)
. list
+-----------------+
| rep78 price |
|-----------------|
1. | 1 4,608.6 |
2. | 2 6,230.2 |
3. | 3 7,142.2 |
4. | 4 6,099.9 |
5. | 5 4,186.5 |
|-----------------|
6. | . 4,758 |
+-----------------+
虽然我认为你想要的足够清楚,但这不是一个可复制的例子。Stata tag wiki提供了关于显示我们可以运行的代码的非常详细的建议。感谢您提供的代码。我想我应该提到,我希望各种矩阵(取决于假人自己的位置)附加不同的数据集,然后使用它们生成特定的变量。这就是为什么我没有考虑崩溃的原因。所以这是一个不同的问题。我想如果我把我需要的数据保存为矩阵(如果有可能用2个变量创建矩阵:在我的情况下,使用x和x),然后附加/合并另一个数据,它就可以完成这项工作。我知道有多种方法可以做到这一点,但知道如何创建包含2个变量的矩阵会对我很有帮助。我建议你用一个可复制的例子问一个不同的问题。