最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

我感覺到,全都回來了

2021-09-04 21:03 作者:陸震同學  | 我要投稿

幾天不見,繼續(xù) SAS training。

quiz

首先給你這樣包含 unique subject id 和 各種 date 的數(shù)據(jù)集,如下,

要求你,先依據(jù)這 16 個字符型 date 變量創(chuàng)建對應(yīng)的數(shù)字型 date 變量,需為 date9. 格式;再生成一個新的 date 變量,該變量定義為:第一次出現(xiàn)的比前面的一個日期 >=15 天的日期,即若對于某條記錄,dtn_1002-dtn_1001>=15 ?那么 date 應(yīng)為 dtn_1002。

上 code,

data sv;
? ?set sv;
? ?array a_a(*) dt_1001-dt_1015 dt_1999;
? ?array a_b(*) dtn_1001-dtn_1015 dtn_1999;
? ?format dtn_1001-dtn_1015 dtn_1999 date9.;
? ?do i= 1 to dim(a_a,1);
? ? ? ?a_b(i)= input(a_a(i), yymmdd10.);
? ?end;
? ?do j= 1 to (dim(a_b,1)-1);
? ? ? ?if a_b(j+1)-a_b(j) >= 15 then do;
? ? ? ? ? ?date= put(a_b(j+1), yymmdd10.);
? ? ? ? ? ?leave;
? ? ? ?end;
? ?end;
? ?keep usubjid dtn_1001-dtn_1015 dtn_1999 date;
run;
proc print data= sv(obs= 2); run;

實現(xiàn)效果如下,

厘清思路

為什么要挑這個 quiz 來講?主要是看中了里面的 leave statement。

array 我們是熟悉的,我們知道 do 循環(huán)是對相同變量多次執(zhí)行相同操作,而 array 數(shù)組則是對不同變量執(zhí)行相同操作。這里我們將一組變量轉(zhuǎn)成一個 array,來統(tǒng)一轉(zhuǎn)化格式,生成新變量。

要重點說的,就是下面 do 循環(huán)中的生成新變量 date 的邏輯。quiz 要取第一個比前一次日期多 15 天的那個日期,取到以后就中止該 subject 后續(xù)的日期比較。這里我們用到了 leave,它的作用是:在滿足某些條件時徹底中止整體 do 循環(huán)(注意,并非當次循環(huán)),且不會返回 do statement。

我們看 print 出來的第一個 subject,它在 dtn_1011 時才滿足條件,因而,date 取到 dtn_1011 的日期,而不會再進行后續(xù)的日期比較。借助 leave,我們可以實現(xiàn)同一行數(shù)據(jù)相鄰列之間的相互比較。

不知道同學們有沒有感覺到,這是一種行維度上面,類似于 lag 的操作。


我感覺到,全都回來了的評論 (共 條)

分享到微博請遵守國家法律
崇文区| 绥德县| 双流县| 顺平县| 营山县| 靖西县| 宁津县| 天峨县| 永寿县| 定远县| 美姑县| 鄂温| 当涂县| 定远县| 晋宁县| 甘肃省| 南平市| 东乡| 大新县| 嘉祥县| 襄汾县| 全南县| 新平| 西青区| 黑河市| 城口县| 泾阳县| 郸城县| 临沂市| 尚义县| 翁牛特旗| 闵行区| 天柱县| 修文县| 旺苍县| 绥德县| 咸阳市| 彭山县| 襄城县| 漳平市| 堆龙德庆县|