Stata:将矩阵转换为数据集而不丢失名称
这个问题以前有人问过,但这里的答案似乎不适用。我想从我的回归输出中创建一个数据集,而不会丢失信息。考虑:Stata:将矩阵转换为数据集而不丢失名称,stata,Stata,这个问题以前有人问过,但这里的答案似乎不适用。我想从我的回归输出中创建一个数据集,而不会丢失信息。考虑: clear * input str3 iso3 var1 var2 var3 GBR 10 13 15 USA 9 7 4 FRA 8 8 7 BEL 3 4 5 end local vars var2 var3 reg var1 var2 var3 matrix A=r(table) matrix list A clear xsvmat A, names(col
clear *
input str3 iso3 var1 var2 var3
GBR 10 13 15
USA 9 7 4
FRA 8 8 7
BEL 3 4 5
end
local vars var2 var3
reg var1 var2 var3
matrix A=r(table)
matrix list A
clear
xsvmat A, names(col) norestore
其中Stata抱怨
\u cons
列。我对这个专栏不感兴趣(虽然我也不明白为什么要把它包括进来会有这么大的问题),但在xsvmat
,svmat
或svmat2
帮助中,我找不到解决这个问题的方法。尽管Stata变量名通常可以以下划线开头11.3命名约定说明\u cons
是保留名称,不能用作变量名称
我想你想要这个:
clear
set more off
input ///
str3 iso3 var1 var2 var3
GBR 10 13 15
USA 9 7 4
FRA 8 8 7
BEL 3 4 5
end
local vars var2 var3
reg var1 var2 var3
matrix A = r(table)
// get original row names of matrix (and row count)
local rownames : rowfullnames A
local c : word count `rownames'
// get original column names of matrix and substitute out _cons
local names : colfullnames A
local newnames : subinstr local names "_cons" "cons", word
// rename columns of matrix
matrix colnames A = `newnames'
// convert to dataset
clear
svmat A, names(col)
// add matrix row names to dataset
gen rownames = ""
forvalues i = 1/`c' {
replace rownames = "`:word `i' of `rownames''" in `i'
}
// check
order rownames
list, sep(0)
使用扩展宏函数。如果您不熟悉它们,请参阅帮助扩展\u fcn
另请参见,它非常类似,建议使用postfile
和statsby
最后,如果您的目标是输出回归表,请勾选“ssc描述estout”。您所说的“不丢失信息”到底是什么意思?这不是在内存中丢失数据集吗?我冒昧地更改了一些措辞(包括标题),以便更容易理解。如果我误解了什么,你可以将更改回滚。