全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
7892 26
2019-02-17
我修改了一个程序包计算熵值,但是运行后显示找不到x_1,不知道问题出在哪里,请大神帮忙看看
程序包是为了实现统一各指标权重的基础上,区分正负指标计算熵值
问题可能出现在这部分程序:

哪位大神知道问题出在哪里,可以有偿帮助修改
apt prog drop szf1
prog szf1
set more off
preserve
quietly {
local m = `1'
local n = `2'
local n2 = `n'+2
if `m'>`n' {
mat A = J(`m',3,.)
}
else {
mat A = J(`n',3,.)
}
//所有指标
global all_var $positive_var $negative_var
//年份
qui sum year
global min_year=r(min)
global max_year=r(max)

forvalues year=$min_year / $max_year{
        use data.dta, clear
        keep if year==`year'

        //标准化数据 正向指标
        foreach i in $positive_var {
                qui sum `i'
                gen x_`i'=(`i'-r(min))/(r(max)-r(min))
                replace x_`i'=0.00001 if x_`i'==0
        }
       
        //标准化数据 负向指标
        foreach i in $negative_var {
                qui sum `i'
                gen x_`i'=(r(max)-`i')/(r(max)-r(min))
                replace x_`i'=0.00001 if x_`i'==0
        }
//
forvalues i = 3/`n2' {
local j = `i'-2
capt drop bss`j'
ge bss`j' = `x_`i''
su bss`j'
ge bs`j' = bss`j'/r(sum)
}
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-2-18 09:53:34
你用set trace on就可以看到具体出错在哪一行。还有set more off直接写在profile.do就可以了。
还有你贴的代码没法阅读。
还有为什么要在program里定义全局暂元。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-2-18 11:31:34
非常感谢,set trace on 如何使用呢,我在stata里运行没有反映啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-2-18 11:35:24
天南水北 发表于 2019-2-18 09:53
你用set trace on就可以看到具体出错在哪一行。还有set more off直接写在profile.do就可以了。
还有你贴的 ...
非常感谢,set trace on 如何使用呢,我在stata里运行没有反映啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-2-18 11:48:26
天南水北 发表于 2019-2-18 09:53
你用set trace on就可以看到具体出错在哪一行。还有set more off直接写在profile.do就可以了。
还有你贴的 ...
可否有偿帮忙修改下程序,留个联系方式
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-2-18 12:06:18
hanxinyue1983 发表于 2019-2-18 11:48
可否有偿帮忙修改下程序,留个联系方式
微信s358469726
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群