clear all
sysuse auto, clear
//最外层循环用于遍历被解释变量,如果被解释变量为数值型变量才可进行,否则遍历下一个变量
foreach i of varlist _all{
cap confirm numeric variable `i' //判断改变量是否为数值型变量的命令,如果为数值型变量,返回的_rc是0
if _rc == 0{
preserve //预保存
drop `i'
global z = ""
foreach j of varlist _all{ //内层循环生成一串解释变量的
字符串,前提也是变量必须是数值型变量
cap confirm numeric variable `j'
if _rc == 0{
global z = "$z `j'" //把数值型变量一个个的加在后面
}
}
restore //恢复预保存的数据
qui reg `i' $z
global a_`i' = e(r2)
di "以`i'为被解释变量的回归的R-square为" $a_`i'
}
}