0

私は、医薬品に対する反応に関するデータを含む FDA のデータ セットを使用しています。薬の名前でデータをサブセット化しようとしています。関心のある薬物名を含む外部テキスト ファイルがあります。関心のある薬物で構成されるデータのサブセットを作成したいと考えています。外部テキスト ファイルのタイトルは SSRIFULL.txt で、変数名は DRUGNAME です。私は露骨に間違っていた多くのことを試しました

すなわち

データ SSRIFULL2;

---- SSRIFULL を設定します。

---- Drugname ~= "P:\APPRENTICESHIP\SSRI_LIST.txt" の場合、削除します。

走る;

そして、この問題に関する直接の文献を見つけることができません。trunco​​ver または proc sql に関するトピックをもっと調べるべきですか? テキスト ファイルには、約 20 種類の薬物のリストが含まれています。私はある種のインラインコードにもオープンですが、何らかの理由でSASはこれを好まない...

データ SSRIFULL2;

---SSRIFULL を設定します。

------IF (AGE >19) OR (AGE = .) Then Delete;

------If (DRUGNAME ~= 'クロミプラミン' OR 'フルボキサミン' または 'パキシル' または 'パロキセチン' または 'プロザック'

------または「フルオキセチン」または「セロクエル」または「ウェルブトリン」または「ブプロピオン」または「ゾロフト」または「セルトラリン」

------OR 'Zyban') 次に削除します。

走る;

おそらく明らかなように、私は SAS の経験があまりありません。この時点で、このデータ セットを分析に使用できるようにしようとしています。事前に助けてくれてありがとう

4

1 に答える 1

2

必要な構文については、SAS のドキュメントを参照してください。あなたの 2 回目の試行はかなり近いものでしたが、これは正しいです。

DATA SSRIFULL2;
 SET SSRIFULL;
 IF (AGE >19) OR (AGE = .) Then Delete;
 If DRUGNAME in ('clomipramine' 'fluvoxamine' 'Paxil' 'paroxetine' 'Prozac' 'fluoxetine' 'Seroquel'  'Wellbutrin' 'bupropion' 'Zoloft' 'sertraline' 'Zyban') then delete;
RUN;

変数に格納された名前はdrugname大文字と小文字が区別されることに注意してください。たとえば、変数が「paxil」の場合、「Paxil」で一致させようとしても機能しません。lowcase関数を使用してこれに対処できます。

最初の試行のようなものを実装するには、ファイルを SAS データセットに読み込み、それを使用して 2 番目のステップでマッチングを行う必要があります。

data ssri_list;
 length drugname $50.;
 infile 'P:\APPRENTICESHIP\SSRI_LIST.txt';
 input drugname$;
run;

proc sql;
 create table ssrifull2 as
  select * from ssrifull where 0<=age<19 and drugname not in
   (select drugname from ssri_list);
quit;

またはそのようなもの。

于 2013-04-02T23:40:34.670 に答える