换了两个代码都显示not found 为什么会这样😭 但是前面都没有报错 在求权重的时候就开始报错了

换了两个代码都显示not found 为什么会这样😭 但是前面都没有报错 在求权重的时候就开始报错了

m0_72013221 下午好🌅🌅🌅
本答案参考ChatGPT-3.5
在Stata中执行熵值法时遇到sx1 not found错误,通常意味着变量sx1没有在当前的数据集中被定义或识别。根据您提供的代码片段,我注意到可能存在以下问题:
变量名拼写错误:确保在创建sx1变量的步骤中变量名正确无误,并且后续引用该变量的地方也保持一致。
变量未生成:在计算sx1之前,请确保已正确执行了所有必要的数据处理和变量生成步骤。特别是检查对sx系列变量(如sxi')的赋值是否包含了sx1。
循环范围不匹配:在循环过程中,需要遍历正确的变量集合。例如,如果sx1是第1个指标变量,那么在forvalue循环中应确保包括sx1在内的所有变量都被正确迭代。
针对这个问题,可以尝试以下解决方案:
* 假设sxi'变量已经按预期方式生成
* 检查并设置循环范围与实际变量数量相符
local num_vars = wordcount("$all_var") // 获取所有变量个数
forvalues i = 1/`num_vars' {
egen min_i'=min(sx`i')
egen max_i'=max(sx`i')
gen s`i'=(max_i'-sx`i')/(max_i'-min_i')
replace s`i' = 0.0001 if s`i' == 0
egen sumsi'=sum(sx`i')
gen p`i'=sx`i'/sumsi'
}
* 如果有负向指标,则需额外处理
foreach i in $neg_var {
egen min_i'=min(sx`i')
egen max_i'=max(sx`i')
...
}
请根据实际情况调整上述代码以匹配您的数据集和指标体系。