非常感谢!我刚核对了数据,大部分结果都是对的,只有一小部分有点问题。
例如:企业1第一次对美国出口是2001年,但出口一段时间后退出,第二次进入是2005年。分别统计2001和2005年进入前对多少国家出口。现在的程度能正确统计第一次进入的情况,但第二次甚至更多次进入时的统计结果有误差。
a var country startyear
1 美国 2001
1 美国 2005
b var country startyear
1 新加坡 2002
1 香港 2000
1 澳大利亚 2003
1 泰国 2006
1 美国 2001
result var country startyear number
1 美国 2001 1
1 美国 2005 3
辛苦您!
下面结果中, 同一产品(var)第二次进入到同一国家(country)时 n 的值(n=4) 要减去第一次进入时 n 的值 (n=1)
data a;
input var country startyear;
datalines;
1 1 2001
1 1 2005
; run;
data b;
input var country_id startyear;
datalines;
1 2 2002
1 3 2000
1 4 2003
1 5 2006
1 1 2001
; run;
proc sql;
select distinct a.var, a.country, a.startyear, count(b.country_id) as n
from a left join b
on a.var=b.var and a.startyear > b.startyear
group by a.var, a.country, a.startyear;
quit;
proc sql; /*compare first*/
create table avb1 as
select * from a left join (select country_id, startyear as year from b)
on a.var=b.var where year lt startyear;
quit;
proc sql; /*count countris*/
create table avb2 as
select var, country, startyear, count(country_id) as countris from avb
group var, country;
quit;
proc sort data =avb2 noduprecs out=result; /*list result*/
by var country;
run;