Re: [問題] SAS數值取代問題
※ 引述《now401 (red-dog)》之銘言:
: 我現在在做資料的處理
: 我想做到的目的是當數值遇到某個值時能由下個數據來取代
: 假設說我的數據有x.y兩個變數,
: 但我不要x裡有17所以要用下一個數值來取代
: 若下一個數值還是17那就繼續再抓下一個
: 下面我是嘗試寫的程式
: 可是我只能寫到當x遇到17就抓下個數值取代
: 但若連續兩個..則第一個17還是不能被取代掉
: 不知有沒有高手能教我當連續兩個數值出現要如何修改程式??
: 我知道最簡易的方法就是再寫一遍程式的取代部分
: 可是因為我是要運用在其他資料處理方面
: 而那些data set裡數據的連續重複數又很多
: 所以想來問問看是否有人可以幫幫我... 謝謝
: data all;
: input x y ;
: cards;
: 7 8
: 9 10
: 11 12
: 13 14
: 15 16
: 17 18
: 17 16
: 15 14
: 13 12
: 11 10
: 9 8
: 7 6
: ;
: proc transpose data=all out=tall;
: data numeric;
: set tall;
: array arr[*] _numeric_;
: do i=1 to dim(arr);
: if arr[i]=17 then do;
: arr[i]=arr[i+1];
: end;
: proc print;
: run;
: 不知有沒有高手能教我當連續兩個數值出現要如何修改程式
我直接修改其中一段, 試試看是否就是你期望的幫助
DATA numeric;
SET tall;
ARRAY arr[*] _NUMERIC_;
DO i=1 TO dim(arr);
a=i;
DO WHILE (arr[i]=17);
a+1;
arr[i]=arr[a+1];
END;
END;
RUN;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.231.65.225
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):