五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

數(shù)據(jù)集快速排序 trick

2021-09-06 23:28 作者:陸震同學  | 我要投稿

馬不停蹄趕稿子。

問題

有如下數(shù)據(jù)集,需要固定其中 stat 列的順序,

啥意思?就是后面不管這個數(shù)據(jù)集如何排序,要保持,在各個 sex 中,stat 始終保持 N->Mean->std->Median->Minimum->Maximum 這樣的順序不變。

厘清思路

這里我們用到了 dow 循環(huán)來操作,對于這種由 proc means 確定的 stat 順序的 situation,dow 循環(huán)是再合適不過的了。

上 code,

data mean3;
? ?do _n_= 1 by 1 until(last.sex);
? ? ? ?set mean2;
? ? ? ?by cat sex var;
? ? ? ?ord= _n_;
? ? ? ?output;
? ?end;
run;

就是如此簡單。實際上,我們在 求和的七種方式 文章里提到過 dow 循環(huán)。

注意看過程,其中,當讀完第一個 by 變量組的全部觀測時,last.sex 判定 do until 循環(huán)終止,data step 的第一次迭代結束,進入 data step 的第二次迭代,do until 的 _n_ 又從 1 開始,直到 last.sex,依次類推。我們可以發(fā)現(xiàn),一次 data step 的循環(huán)迭代,讀取的就是 一個 by 變量組的全部觀測。

提問,這里的 do _n_ by until,你覺得起到什么作用?實際上,它壓縮了經(jīng)由 set 讀取數(shù)據(jù)時 data step 的循環(huán)迭代次數(shù)。為什么這么說?正常來講,

data mean3;
? ? ? ?set mean2;
? ? ? ?by cat sex var;
run;

這里,data step 需要迭代 18 次的,而由于 dow 循環(huán)控制了一次 data step 終止的條件,即,必須遇上 last.sex,該次 data step 的迭代才能終止,因而,data step 最終只需要迭代 3 次,即可讀入全部觀測,同時借助 _n_ 作為計數(shù)器,完成了行觀測順序的 assignment。

這種方式,實現(xiàn)了對數(shù)據(jù)讀取的更大程度的控制,非常推薦日常多多使用。

細節(jié)

肯定有人要問,如果開始的數(shù)據(jù)集 stat 列不是剛好我們要的順序怎么辦?

有人就想著利用 if then,進行順序的一個個賦值,當然是可行的,但是一旦 if condition 過多,寫起來也很麻煩,這里推薦的另外一個方式是 聊一聊貼標簽 labeling 這篇文章里提到的,借助 proc format,將 stat 生成數(shù)字 format,依據(jù)數(shù)字進行排序,同時若要對 stat 中的值改名,只需要再生成第二個字符串 format,后續(xù)進行轉 format 即可。


數(shù)據(jù)集快速排序 trick的評論 (共 條)

分享到微博請遵守國家法律
建德市| 宝清县| 海晏县| 措美县| 鹤庆县| 唐河县| 巍山| 皋兰县| 惠州市| 江陵县| 吴桥县| 南开区| 平罗县| 东兰县| 安丘市| 周宁县| 壶关县| 宕昌县| 洞口县| 偏关县| 顺平县| 措勤县| 灵宝市| 鄂托克旗| 恭城| 桂平市| 崇明县| 阿合奇县| 东阿县| 百色市| 尖扎县| 龙游县| 靖远县| 临漳县| 邵阳县| 通渭县| 玛多县| 正镶白旗| 昆山市| 古丈县| 甘泉县|