我正在使用SAS数据集,我想知道如何解决这个问题是SAS。
我正试图为出租车司机寻找独特的游乐设施, 其中A到B和B到A算作一个独特的骑行。
举例说明:
数据集:
Taxidriver_ID From To date
------------------------------------------
0123 Address_1 Address_2 1jan2017
0123 Address_2 Address_1 1jan2017
0123 Address_3 Address_1 5jan2017
0123 Address_1 Address_3 5jan2017
0123 Address_1 Address_3 6jan2017
0123 Address_4 Address_5 1jan2017
我想将此分类为3个独特的出租车驾驶员0123: 1到2(和反向), 1到3(和反向)和 4到5
我想计算这些独特游乐设施的数量。 在4个游乐设施的例子中 (1到2)一次 (1至3)两次 (4到5)一次
非常感谢帮助!
答案 0 :(得分:1)
您可以通过select distinct
对地址进行最小/最大比较组合来解决您的第一个问题。
data have;
infile datalines;
input taxidriver_id $ from $ to $ date :anydtdte.;
format date date.;
datalines;
0123 Addr_1 Addr_2 1jan2017
0123 Addr_2 Addr_1 1jan2017
0123 Addr_3 Addr_1 5jan2017
0123 Addr_1 Addr_3 5jan2017
0123 Addr_1 Addr_3 6jan2017
0123 Addr_4 Addr_5 1jan2017
;
run;
proc sql;
create table want as
select distinct taxidriver_id
,ifc(from<to,from,to) as from
,ifc(from>to,from,to) as to
from have
;
quit;
你的第二个问题可以通过以下方式得到解答:
proc sql;
create table want as
select taxidriver_id
,from
,to
,count(*) as count
from (
select distinct taxidriver_id
,ifc(from<to,from,to) as from
,ifc(from>to,from,to) as to
,date
from have
)
group by taxidriver_id, from, to
;
quit;