我在用工业企业数据库的时候要调整02年前后行业代码的口径,故写了下面这一段,其中矩阵A是调整口径,第一列是调整后的,第二列是2003年的,第三列是2002年的,太长了只截取了一部分;year是年份;xxcic是行业代码。附上一个小样本,报错不知错在哪,望指教,谢谢!
#delimit ;
mat in A =
(1310,1310,1312\
2221,2221,2221\
2222,2222,2223\
2223,2223,2224\
2231,2231,2230\
2231,2239,2230\
2311,2311,2311\
2312,2312,2413\
2319,2319,2312\
2320,2320,2319\
2330,2330,2320\
2411,2414,2411\
2411,2411,2411\
2412,2412,2415\
2413,2413,2417\
2419,2419,2419\
2421,2421,2421\
2422,3753,2423\
2422,2422,2423\
2423,2429,2859\
2423,2424,2429\
2423,2429,2429\
2423,2423,2429\
2431,2431,2431\
2432,2432,2433\
2433,2433,2435\
2439,2439,2439\
2440,2440,2440\
2451,2451,2450\
2452,2452,2490\
2511,2511,2520\
2511,2511,2530\
2512,2512,2510\
2520,2520,2570\
2530,3353,3387\
2619,2669,2619\
2619,2619,2619\
2619,2666,2619\
2621,2621,2621\
2622,2622,2622\\
2642,2642,2653\
2643,2643,2654\
4222,4222,4357\
4229,4229,4355\
4310,4320,6290\
4310,4310,6290);
#delimit cr
local i = 1
while `i' <= _N{
if year[`i'] <= 2002{
local j = 1
while `j' <= rowsof(A){
if xxcic[`i'] == A[`j',3]{
replace xxcic[`i'] = A[`j',1]
}
else{
`j++'
}
}
}
else{
local j = 1
while `j' < rowsof(A){
if xxcic[`i'] == A[`j',2]{
replace xxcic[`i'] = A[`j',1]
}
else{
`j++'
}
}
}
}
dis `i'
`i++'
}