1
論壇上的第一篇文章!我是一個非常基本的編程技能,業餘sas用戶和詞彙可悲...SAS:如果Var1爲空,如何將單元格內容從Var2移動到Var1
這裏的想法:對於單一的觀察,我有6個變量。讓我們稱之爲Fonction1至6
如果Fonction1是空的,我想SAS將內容從Fonction2移動Fonction1,從Fonction3到Fonction2,等等,直到它不是空了
然後如果Fonction2是空的,也是一樣。
所以像
觀察1:9,9,空白,空白,5個,4 將成爲 觀察1:9,9,5,4,空白,空白
注意,整個觀察可能是空的,這將是罰款
所以我寫了下面的代碼:
data individus_fct;
set individus_fct;
do while (Fonction1 = '' and n<8);
put n=;
n+1;
Fonction1 = Fonction2;
Fonction2 = Fonction3;
Fonction3 = Fonction4;
Fonction4 = Fonction5;
Fonction5 = Fonction6;
Fonction6 = '';
end;
run;
data individus_fct;
set individus_fct;
do while (Fonction2 = '' and n<8);
put n=;
n+1;
Fonction2 = Fonction3;
Fonction3 = Fonction4;
Fonction4 = Fonction5;
Fonction5 = Fonction6;
Fonction6 = '';
end;
run;
data individus_fct;
set individus_fct;
do while (Fonction3 = '' and n<8);
put n=;
n+1;
Fonction3 = Fonction4;
Fonction4 = Fonction5;
Fonction5 = Fonction6;
Fonction6 = '';
end;
run;
data individus_fct;
set individus_fct;
do while (Fonction4 = '' and n<8);
put n=;
n+1;
Fonction4 = Fonction5;
Fonction5 = Fonction6;
Fonction6 = '';
end;
run;
data individus_fct;
set individus_fct;
do while (Fonction5 = '' and n<8);
put n=;
n+1;
Fonction5 = Fonction6;
Fonction6 = '';
end;
run;
但它不幹活g ...不知道爲什麼...(我很想知道雖然!)
有什麼建議嗎?
作爲您的原始代碼的評論:這裏不需要單獨的datasteps。你可以在一個單獨的數據庫中完成所有這些工作 - 只要刪除「運行」,「數據」和「設置」語句就可以在這裏完成同樣的事情。我不確定你的n + 1真的在做什麼,或者爲什麼n <8在每個陳述上;你基本上有7次遍歷它,但是你沒有7次迭代。 – Joe