新しい列<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />私はある病状で入院した患者の大規模データベースを持っています。 私は「死の前の年」を示すために新しいコラムを作成しようとしています。 下記参照:
これは私のデータベースがどのように見えるかです:
| 年 | 患者 | 死亡率365日 |
|---|
| 1990年 | 221 |
|
| 1991年 | 221 |
|
| 1991年 | 221 |
|
| 1993年 | 221 |
|
| 1995年 | 221 | * |
| 2000年 | 789 |
|
| 2001年 | 789 |
|
| 2002年 | 789 | * |
| 2001年 | 965 |
|
| 2005年 | 965 | * |
これは私が作成しようとしているものです:
| 年 | 患者 | 死亡率365日 | 死亡年 | 死の数年前 |
|---|
| 1990年 | 221 |
| 1995年 | 5 |
| 1991年 | 221 |
| 1995年 | 4 |
| 1991年 | 221 |
| 1995年 | 4 |
| 1993年 | 221 |
| 1995年 | 2 |
| 1995年 | 221 | * | 1995年 | 0 |
| 2000年 | 789 |
| 2002年 | 2 |
| 2001年 | 789 |
| 2002年 | 1 |
| 2002年 | 789 | * | 2002年 | 0 |
| 2001年 | 965 |
| 2005年 | 4 |
| 2005年 | 965 | * | 2005年 | 0 |
mortality_in365days列の星は、過去365日以内に死亡したことを意味します。 彼らがどれくらい前に亡くなったか(30日対365日)によっては、それらが前年より亡くなったことを意味するかもしれないので、私は死の前の年は正確な計算ではないことを知っている。 私はJMPを設定して死亡年の列を作成し、次に死亡前の年数を計算するための単純な減算式を作成しましたが、その後問題に遭遇しました。 私はまだスクリプト作成があまり得意ではないので、更新機能を使って手動でそれを行いました。 手動の指示かスクリプトで私を助けてくれるなら私に知らせてください。
ありがとう。
新しい列各患者の最大年は明らかに死亡年に対応する。手動であなたはそれからPatientによってグループ化された最大年で要約をすることができます。次に、両方のテーブルの一致列としてPatientを使用して、元のテーブルをサマリーで更新します。最後の単純な引き算(Death year - Year)は最後の列になります。
これはスクリプトによってそれをする1つのわずかに異なる方法です
dt = データ表 ( 「データベース」 ) ;
要約する ( p = によって ( : 患者 ) 、 xyxy = マックス ( : 年 ) ) ;
ああ = 連想配列 ( 評価 ( p ) 、リストとして ( xyxy ) ) ;
col1 = dt << 新しいコラム ( 「死の年」 、数値 ) ;
col2 = dt << 新しいコラム ( 「死の前の年」 、数値 ) ;
各行について (
col1 [] = ああ [ チャー ( : 患者 [] )] ;
col2 [] = col1 [] - : 年 [] ;
) ;
新しい列JMPについてはほとんど知っていませんが、2倍のDULでも同じように機能します。
データがあります。
インフィルカードの見逃し。
YEAR patient $ Mortality_in365days $;
カード
1990年221
1991年221
1991年221
1993 221
1995 221 *
2000 789
2001 789
2002 789 *
2001 965
2005 965 *
;
データが欲しい。
(last.patient)まで行います。
セットがあります。
患者の年によって。
Death_year = ifn(last.patient、year、death_year);
death_yearを保持します。
終わり;
(last.patient)まで行います。
セットがあります。
患者の年によって。
Years_Before_death = death_year-year;
出力;
終わり;
走る。
proc print; run;
よろしく、
ハイクオ