我使用的数据集是这样的:
+----------+--------+-------+
| 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 |
+----------+--------+-------+
我试着在大多与数据步各种可能性LAG()函数。 当时的想法是看了前面排当细胞是空的,并填补。
DATA test;
SET test;
IF variable = . THEN DO;
variable = LAG1(variable);
END;
RUN;
而我得到的
+----------+--------+-------+
| Variable | Level | Value |
+----------+--------+-------+
| | men | 10 |
| sexe | female | 20 |
| | 0-20 | 5 |
| age | 20-40 | 5 |
| | 40-60 | 10 |
| | >60 | 10 |
+----------+--------+-------+
这个问题是很好的字符串不是永远只是一列上。 但我不明白为什么SAS在第一和3D线把空白。 它没有修改这一行,因为我说:“如果变量=。”。 我知道如何做到这一点在Python或与一些用于回路R,但我没有发现SAS很好的解决方案。
我试图把字符串变量里面有“ CALL SYMPUT ”,并与“ RETAIN ”,但它没有工作过。
必须有一个简单而优雅的方式来做到这一点。 任何的想法?