以前の非ブランク値と変数のブランク値を入力します。私のようなものであるデータセット使用していSAS 9.3
+----------+--------+-------+
| Variable | Level | Value |
+----------+--------+-------+
| sexe | men | 10 |
| | female | 20 |
| age | 0-20 | 5 |
| | 20-40 | 5 |
| | 40-60 | 10 |
| | >60 | 10 |
+----------+--------+-------+
そして、私は以前を使用して、「ブランク」細胞を全うしたいと思いますがこのようなものを得るために空白でないセル。
+----------+--------+-------+
| Variable | Level | Value |
+----------+--------+-------+
| sexe | men | 10 |
| sexe | female | 20 |
| age | 0-20 | 5 |
| age | 20-40 | 5 |
| age | 40-60 | 10 |
| age | >60 | 10 |
+----------+--------+-------+
DATAステップでは、多くの場合、LAG()機能でさまざまな可能性を試しました。アイデアは、セルが空のときに前の行を読んで、それを記入することでした。
DATA test;
SET test;
IF variable = . THEN DO;
variable = LAG1(variable);
END;
RUN;
そして、私は問題は良いの文字列が上位常に1行だけではありませんでした
+----------+--------+-------+
| Variable | Level | Value |
+----------+--------+-------+
| | men | 10 |
| sexe | female | 20 |
| | 0-20 | 5 |
| age | 20-40 | 5 |
| | 40-60 | 10 |
| | >60 | 10 |
+----------+--------+-------+
を得ました。しかし、なぜSASが最初と3番目のラインに空白を入れたのか分かりません。私は "If variable =。"と言っていたので、この行を修正する必要はありませんでした。 私はこれをPythonまたはRのいくつかのforループで行う方法を知っていますが、SASで良い解決策を見つけることはできませんでした。
「CALL SYMPUT」という変数と「RETAIN」という変数の内部に文字列を挿入しようとしましたが、機能しませんでした。
これを行うには、シンプルで洗練された方法が必要です。何か案が?
便利な質問どうもありがとう。 – stan