看板 Statistics 關於我們 聯絡資訊
小弟不才寫了一些 望請有人繼續修改 data k1 k2; input date1$ date2$ con$ value; if date1=date2 then s=_n_; nm=_n_; if date1=date2 then output k1; else output k2; cards; 8/8 8/1 A 0.1 8/8 8/3 A 0.2 8/8 8/5 A 0.3 8/8 8/7 A 0.15 8/8 8/8 A 0.2 8/8 8/9 A 0.1 8/8 8/10 A 0.3 9/3 8/29 B 0.5 9/3 9/1 B 1 9/3 9/2 B 0.2 9/3 9/3 B 0.4 9/3 9/6 B 0.6 9/3 9/7 B 0.2 ; proc print data=k1; proc print data=k2; proc sql ; create table sel as select two.date1 as date1, two.date2 as date2, two.con as con, two.value as value, two.nm as nm, one.s as s from k1 one , k2 two where -4<two.nm-one.s<2 ; run; data fin; set sel k1; drop nm s; proc sort data=fin; by date1 date2; proc print data=fin; run; ※ 引述《fine4313 (GMARKET代買)》之銘言: : 因為找不到相關資料,所以PO上版問大家 : EX: : date1 date2 con value : 8/8 8/1 A 0.1 : 8/8 8/3 A 0.2 : 8/8 8/5 A 0.3 : 8/8 8/7 A 0.15 : 8/8 8/8 A 0.2 : 8/8 8/9 A 0.1 : 8/8 8/10 A 0.3 : 9/3 8/29 B 0.5 : 9/3 9/1 B 1 : 9/3 9/2 B 0.2 : 9/3 9/3 B 0.4 : 9/3 9/6 B 0.6 : 9/3 9/7 B 0.2 : 如果我設if,希望抓到date1=date2的那一筆資料 : 並由那一筆資料網前抓三筆、後一筆, : 想要的結果如下: : date1 date2 con value : 8/8 8/3 A 0.2 : 8/8 8/5 A 0.3 : 8/8 8/7 A 0.15 : 8/8 8/8 A 0.2 : 8/8 8/9 A 0.1 : 9/3 9/1 B 1 : 9/3 9/2 B 0.2 : 9/3 9/3 B 0.4 : 9/3 9/6 B 0.6 : 請問該怎麼寫呢 : 謝謝:) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.29.135.126
west1996:s的功能似乎可以用one.nm取代掉? 12/10 10:34
kingbee:s是給符合相同日期的 nm是給日期前三筆後一筆對應的 12/10 14:11
west1996:恩,我的意思是在k1中s與nm的值是一模一樣的,都表示在 12/10 15:12
west1996:原始資料的第幾筆,所以在sql裡面s的功能似乎可以完全由 12/10 15:12
west1996:k1裡的nm來表示,這樣可以稍微省一點空間,不過差別不大 12/10 15:13
west1996:就是了XD 12/10 15:13
fine4313:謝謝各位,我成功了:) 12/10 15:50