打开
st_view()
函数的help文件,总结
st_view()
函数的语法结构如下:
矩阵变量类型
|
语法结构
|
数值
|
st_view(
V,
real matrix i, real matrix j)
|
st_view (
V,
real matrix i, real matrix j,scalar selectvar)
|
字符
|
st_sview (
V,
string matrix i,string matrix j)
|
st_sview(
V,
string matrix i,string matrix j,scalar selectvar)
|
可以看到,函数
st_view()
可以用来提取Stata 当前内存的数值型变量,st_sview()用来提取Stata 当前内存的字符型变量,其中:i表示新生成的矩阵行数(第几行),j表示新生成的矩阵列数(第几列),selectvar表示一个标量,这里有3种类型的表示方法:
(1)如果selectvar为具体的某一个变量或者是变量的序号(即第几个变量),则表示提取该变量下的非零观测值(含缺失值)。
(2)如果selectvar是0,则表示返回所选变量中非缺失的观测值。
(3)如果selectvar是“.”或者“ ”,则与不加选项selectvar是一样的效果。
举例子:
sysuse auto,clear
keep in 1/10
tab rep78, generate(r)
//生成变量rep78的虚拟变量
进入mata语言环境,先提取数值型变量:
mata
B1=B2=B3=B4=B5=B6=B7=B8=B9=B10=.
//定义10个空矩阵
st_view(B1, .,.)
//定义矩阵B1为所有变量的所有观测值
B1
st_view(B2, .,2)
//定义矩阵B2为第二个变量的所有观测值
B2
st_view(B3, .,("price","mpg","weight","rep78"),0)
//定义矩阵B3为变量price、mpg、weight和rep78的所有非缺失的观测值
B3
st_view(B4, .,("price","mpg","weight","rep78"),"r1")
//定义矩阵B4为虚拟变量r1取值非0(含缺失值)时,变量price、mpg、weight和rep78的观测值
B4
st_view(B5, .,("price","mpg","weight","rep78"),14)
//定义矩阵B5为序号是14的变量取值非0(含缺失值)时,变量price、mpg、weight和rep78的观测值
B5
end
部分结果如下: