Id jan feb mar apr may jun jul
A 1 . . 1 1 . .
B . . 1 . . . .
A . 1 . . . . .
C . . . 1 . . .
値が見つからない開始月がわかりたいと思います。 Aのためにそれはjanです、Bのためにそれはmar ansそうです。IDに基づいて開始月を取得する方法
Id jan feb mar apr may jun jul
A 1 . . 1 1 . .
B . . 1 . . . .
A . 1 . . . . .
C . . . 1 . . .
値が見つからない開始月がわかりたいと思います。 Aのためにそれはjanです、Bのためにそれはmar ansそうです。IDに基づいて開始月を取得する方法
私はあなたの疑問に答えていませんでした。それは、最初の欠損していない値を見つけるために別の関数が合体することを必要とします。
data id;
input Id:$1. jan feb mar apr may jun jul;
array a[*] jan-numeric-jul;
target = coalesce(of a[*]);
l=whichn(target,of a[*]);
if l gt 0 then month = vname(a[l]);
cards;
A 1 . . 1 1 . .
B . . 99 . . . .
A . 223 . . . . .
C . . . -11 . . .
;;;;
run;
proc print;
run;
ARRAYと2つの機能が必要です。
data id;
input Id:$1. jan feb mar apr may jun jul;
array a[*] jan-numeric-jul;
month = vname(a[whichn(1,of a[*])]);
cards;
A 1 . . 1 1 . .
B . . 1 . . . .
A . 1 . . . . .
C . . . 1 . . .
;;;;
run;
あなたはSOの規則に従ってあなたの質問に試してみたものを記載してください。 – Reeza