用后续值填充空白变量
Fill blank variable with subsequent values
我有一个结构如下的数据集;
id contracthours13 contracthours14 contracthours13u contracthours14u
12 . 13 . 13
13 30 30 . .
14 . . 15 16
15 . 5 6 7
如果缺少 contracthours13
,我希望 contracthours14
中的值移动。如果缺少它,那么我希望 contacthours13u
移动,如果前 3 个都丢失,那么 contracthours14u
也是如此。我知道这是相当简单的语法,但如果不使用 运行 更简单的语法 3 次,我就无法理解如何做到这一点。如果有人能提供帮助,将不胜感激。
编辑:下面是我希望我的数据集之后的样子。
id contracthours13
12 13
13 30
14 15
15 5
DATA LIST FREE / ID CH13 CH14 CH13U CH14U.
BEGIN DATA.
1 -1 13 -1 -1
2 30 30 -1 -1
3 -1 -1 15 16
4 -1 5 6 7
END DATA.
DATASET NAME DSRaw.
RECODE ALL (-1=SYSMIS).
VECTOR V= CH14 TO CH14U.
LOOP #i = 1 TO 3 IF (NVALID(CH13)=0).
COMPUTE CH13=V(#i).
END LOOP IF NVALID(V(#i))=1.
LIST.
EXE.
**List**
ID CH13 CH14 CH13U CH14U
1.00 13.00 13.00 . .
2.00 30.00 30.00 . .
3.00 15.00 . 15.00 16.00
4.00 5.00 5.00 6.00 7.00
Number of cases read: 4 Number of cases listed: 4
我有一个结构如下的数据集;
id contracthours13 contracthours14 contracthours13u contracthours14u
12 . 13 . 13
13 30 30 . .
14 . . 15 16
15 . 5 6 7
如果缺少 contracthours13
,我希望 contracthours14
中的值移动。如果缺少它,那么我希望 contacthours13u
移动,如果前 3 个都丢失,那么 contracthours14u
也是如此。我知道这是相当简单的语法,但如果不使用 运行 更简单的语法 3 次,我就无法理解如何做到这一点。如果有人能提供帮助,将不胜感激。
编辑:下面是我希望我的数据集之后的样子。
id contracthours13
12 13
13 30
14 15
15 5
DATA LIST FREE / ID CH13 CH14 CH13U CH14U.
BEGIN DATA.
1 -1 13 -1 -1
2 30 30 -1 -1
3 -1 -1 15 16
4 -1 5 6 7
END DATA.
DATASET NAME DSRaw.
RECODE ALL (-1=SYSMIS).
VECTOR V= CH14 TO CH14U.
LOOP #i = 1 TO 3 IF (NVALID(CH13)=0).
COMPUTE CH13=V(#i).
END LOOP IF NVALID(V(#i))=1.
LIST.
EXE.
**List**
ID CH13 CH14 CH13U CH14U
1.00 13.00 13.00 . .
2.00 30.00 30.00 . .
3.00 15.00 . 15.00 16.00
4.00 5.00 5.00 6.00 7.00
Number of cases read: 4 Number of cases listed: 4