2017-02-08 4 views
2

私のようなデータセットを持っている:SPSS:前の時点で繰り返し出現の検索

Case #|DateA |Drug.1|Drug.2|Drug.3|DateB.1 |DateB.2 |DateB.3 |RcvdDrugXTimeA 
------|------|------|------|------|--------|---------|--------|-- 
1  |DateA1| X | Y | X |DateB1.1|DateB1.2 |DateB1.3| 0 
2  |DateA2| X | Y | X |DateB2.1|DateB2.2 |DateB2.3| 1 
3  |DateA3| Y | Z | X |DateB3.1|DateB3.2 |DateB3.3| 1 
4  |DateA4| Z | Z | Z |DateB4.1|DateB4.2 |DateB4.3| 0 

は、各ケースが異なる日付で薬を受け取るの多くのレコードを持っています。私のエンドポイントはTime Aに薬剤Xを受けています。Timeは、薬剤の受け取りごとにDateADateBの間の差に基づいて計算されます。

場合は、Time Aで薬物Xを受信した場合、その後、私は、彼らはまた、(彼らはTime Aで薬物Xを受信すると、新たな発生または繰り返し発生であるかどうかを判断するために)前の日付で薬物Xを受け取ったかどうかを知りたいです。

Time Aの間に少なくとも1回薬物Xを投与された各症例について、変数RcvdDrugXTimeA = 1を有する。

Time Aの前に薬物Xを受け取った場合は、RcvdPriorDrugX = 2が必要です。彼らがしなければ、私はRcvdPriorDrugX = 1がほしいと思う。彼らが薬物Xを受け取ったことがないなら、理想的にはRcvdPriorDrugX = 0

ケース2と3の両方が、Time A中従ってRcvdDrugXTimeA = 1これらのケースのための医薬品Xを受け、一方、上記の例では、ケース1は、Time A内の薬剤Xを受けなくはこれが両方のためにDateB.3に起こったとします。これらのケースの違いは、ケース2も以前に薬剤Xを受けていたため、薬剤Xの受領をTime Aに繰り返すことである。一方、ケース3は以前に薬剤Xを受けていなかったので、薬剤Xの受領はTime Aになりました。私は、Time Aの間に薬物Xを受け取る基準が満たされている場合のレコードを見直し、これが以前に起こったのか、それとも新しい発生であるのかを知らせる出力を生成する関数を作成したいと考えています。出力変数にTime AのDrug Xを受け取ったことのないケースを除外したいと思います。

+0

正確に何を探しているのか分かりにくい。もっと明確にしてください。私は例が多くを助けると思う。 –

+0

申し訳ありませんが、私は明確にしようとします: 患者は、異なる日付に薬剤を受け取った多くの記録を持っています。私のエンドポイントは、時間Aに薬物Xを受け取っています。 患者が時間Aで薬物Xを受け取った場合、前に薬剤Xを受けたかどうかを知りたいと思います。繰り返し発生)。 以前に薬剤Xを受けていた場合は、RcvdPriorDrugX = 2が必要です。もしそうでなければ、RcvdPriorDrugX = 1が必要です。もしそうでなければ受信した薬物Xであり、次いでRcvdPriorDrugX = 0である。 – ScienceStudent

+0

OK次のステップは、この説明をあなたの投稿の編集として追加し、データに目に見える例を追加することです(あなたの条件に合った事例、条件を満たす理由、ケース) –

答えて

1

私があなたがやろうとしていることを理解しているかどうかは完全には分からないので、次の構文は、あなたが与えた出力を示しています。例(および私の構文)が他の可能性や考慮事項をカバーしていない場合は、私に知らせてください。

は、最初に私はあなたの例のデータセットを再作成します。

data list list/Case#(f1) DateA Drug.1 Drug.2 Drug.3 DateB.1 DateB.2 DateB.3 (7a10) RcvdDrugXTimeA(f1). 
begin data 
1  "DateA1" "X" "Y" "X" "DateB1.1" "DateB1.2" "DateB1.3" 0 
2  "DateA2" "X" "Y" "X" "DateB2.1" "DateB2.2" "DateB2.3" 1 
3  "DateA3" "Y" "Z" "X" "DateB3.1" "DateB3.2" "DateB3.3" 1 
4  "DateA4" "Z" "Z" "Z" "DateB4.1" "DateB4.2" "DateB4.3" 0 
end data. 

私は倍の薬物Xの数は投与し、RcvdDrugXTimeAが0であれば、それは出力が1かのものであるならば、出力は、0でカウントXは1回のみ投与され、2回以上投与された場合は2回投与された。

count NofX=Drug.1 Drug.2 Drug.3("X"). 
compute RcvdPriorDrugX=RcvdDrugXTimeA + (NofX > 1). 
関連する問題