BookmarkSubscribeRSS Feed
savagnin_hs
Fluorite | Level 6
動物の亜目(suborder)と動物名(animal)を関連づけて、その関連性(relevance)を%で表記したデータベースがあります。 Q1:これに、suborder_noをグループとして、animalに連番をうつ。   →「first.suboeder_no 」?。 Q2:relevance_animalを参照して、そのanimal_noをrelevance_noに表記させる。   →「hash」?。どうしても思うようにrelevance_noを打つことができない。 続きがありますが、それは別のメッセージで送ります。 どうぞよろしくお願いします。
1 REPLY 1
yu_sas
SAS Employee

見たところrelevance_animalは昇順に並んでいるわけではないようですので、LAG関数で値が

変わったことを検出するのが一案かと思います。

 

data have;
input suborder_no suborder $ animal $ relevance_animal $ relevance $;
cards;
1 felidae tiger felidae 100%
1 felidae cat felidae 100%
1 felidae tabby_cat cat 90% 
1 felidae american_shorthair_cat tabby_cat 60%
2 canidae wolf canidae 100%
2 canidae dog canidae 100%
2 canidae poodle dog 80%
2 canidae toy_poodle poodle 90%
;

data want;
set have;
by suborder_no;
if first.suborder_no then do;
 animal_no=0; relevance_no=0; end;
animal_no+1;
relevance_no+relevance_animal^=lag(relevance_animal);
run;