我的数据集结构如下;
id contracthours13 contracthours14 contracthours13u contracthours14u
12 . 13 . 13
13 30 30 . .
14 . . 15 16
15 . 5 6 7
如果缺少contracthours13
,我希望contracthours14
中的值移动。如果缺少这个,那么我希望contacthours13u
移动到contracthours14u
,如果之前的3个都丢失了。我知道这是相当简单的语法,但我无法理解如何在没有运行更简单的语法3次的情况下做到这一点。如果有人能提供帮助,我们将不胜感激。
修改:以下是我希望我的数据集看起来像以后的样子。
id contracthours13
12 13
13 30
14 15
15 5
答案 0 :(得分:2)
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