日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sas macro 入门

發布時間:2023/12/31 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sas macro 入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

macro是在sas中很重要的一個內容,面試的時候常常會被問到。但是作為新手,一開始我們很少有機會能接觸到使用Macro的內容。Macro在中文中翻譯為宏,我個人的理解是,它是一個可以對于整個sas宏觀所使用的程序,也正如它的名字一樣,既不屬于data step也不屬于proc step。當我們在做一些重復的只需要改變操作對象的步驟時,可以利用宏來減少繁瑣又重復的過程。這種感覺就像在sas中創建了一個函數,通過改變函數中的自變量而得到不同的結果與輸出。

一. 定義宏變量與宏
1.定義宏變量
有兩種方式定義宏變量:%LET和call symput。定義宏變量并分配一個值給宏變量的最簡單方法是使用宏程序語句%LET。格式如下:
%LET 變量名=變量值;
另一個語句就是call symput,其格式如下:
call symput(變量名,變量值);

%let N=30; data temp; percent=(2+17+3)/&N; run;

2.定義宏
定義宏的語句格式為:

%macro 宏名稱(參數1,參數2,參數3);
宏文本
%mend 宏名字;

舉個例子:

%macro test(sex); data temp1; set temp; where sex=“&sex”;******注意此處要使用雙引號而不是單引號*****; run; %mend test;%test(female) %test(male)

我們可以通過改變宏中的參數,來對數據進行篩選。
當第一個宏在執行test的時候,便會將female這個值帶入到&sex里, where statment就變成了
where sex=“female”;

二.自動宏

自動宏實際上就是系統自帶的一些宏變量。以下為常用內容。
SYSDATE SAS啟動時日期;
SYSDATE9 SAS啟動時日期,但是以Date9.格式顯示;
SYSTIME SAS啟動開始的時間;
SYSDAY SAS進程開始是為星期幾;

三. 在proc sql中創建宏變量

假設我們使用proc sql來計算數值,并將這些數值加入宏變量中,方便以后的調用,那我們可以使用 select into語句。
例如,我們想要計算在整個數據中,treatment里使用了placebo的人數:

proc sql noprint; select count(USUBJID) into: N from adsl where treatment=‘Placebo'; quit;

那么此時,N就成為了宏變量,以后可以通過&N 來對這個數值進行調用。這是一個避免hard coding的好方法。

我們也可以通過select into 給多個宏變量進行附值,也就是相當于創建了一個宏變量的list。
例如,我們的id一共有3個,001,002,003,我希望把它提取出來,分別放進宏變量name1 name2 name3里:

proc sql; select distinct(USUBJID) into : NAME1 -:NAME3 from adsl; quit;

在這里,distinct的作用是選擇不重復的id。

四.循環

我們使用宏的目的實際上就是為了避免重復的操作一些內容。在某種情況下,宏只需要調整同一個參數。我們可以采用不停的調用宏的方法來實現。也可以使用do循環幫我們省略更多的步驟(當然需要花費更多的腦力去思考)。

data see; list='A,B,C,D'; run;%macro test(total,listing); data a; set see; %do i=1 %to &total; var&i=scan(&listing,&i,','); %end; run; %mend test;%test(4,list);

和其他do loop一樣,存在do until 與do while,使用格式如下
%do %while(表達式); (先判斷再執行)
需要循環的內容;
%end;

%do %until(表達式); (先執行再判斷)
需要循環的內容;
%end;

五. if 條件語句
在macro中,我們同樣可以使用if-then 條件語句,使用格式如下
%if 條件 %then %do;
需要操作的內容;
%end;
%else %do;
需要操作的內容;
%end;

以上便是我在training階段所學macro入門部分,等以后進組了學習更多再繼續更新。

總結

以上是生活随笔為你收集整理的sas macro 入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 葵司有码中文字幕二三区 | 亚洲制服丝袜一区 | 波多野结衣调教 | 爱插网| 国产成人精品免高潮费视频 | 免费看黄色三级三级 | √天堂中文官网8在线 | 白丝美女被草 | 欧美巨大另类极品videosbest | 精品综合久久久久 | 伊人久久大香线蕉综合75 | 美女交配 | 清清草免费视频 | 夜夜添无码一区二区三区 | 极品91尤物被啪到呻吟喷水 | 国产网站一区 | 日韩一级 | 理论片在线观看视频 | 图书馆的女友在线观看 | 私人午夜影院 | 一级黄色a毛片 | sesese99| 99九九视频| 午夜av网址| 国产在线无码精品 | 一本大道久久a久久综合婷婷 | 91人人干| 特黄一区二区三区 | 小萝莉末成年一区二区 | 日韩av网站在线播放 | 女人一级一片30分 | 欧美视频日韩视频 | 色大师av一区二区三区 | 天天干天天色天天射 | 日本在线一区 | 久久黄色免费网站 | 不卡视频一区二区三区 | 色秀视频网 | 国产精品乱码 | 91看片网 | 综合色av | 色综合综合| 视频1区| 校园春色 亚洲色图 | 女人扒开腿让男人捅爽 | av片子在线观看 | 涩涩视频在线观看 | 99re这里只有精品首页 | www.com亚洲 | 天天躁日日摸久久久精品 | 亚洲国产视频在线观看 | 天天操免费视频 | 精品无码av一区二区三区不卡 | 欧美在线导航 | 91蝌蚪少妇偷拍 | 99热在线观看免费精品 | 中文字幕成人动漫 | av资源库| 1024国产视频 | 黄页网站视频在线观看 | 一本色道久久综合狠狠躁 | 神马午夜在线 | 一级久久久久久久 | 激情久久一区 | 日本成人在线网站 | 精品一区二区三区四区五区六区 | 国产在线视频一区二区三区 | 欧美激情综合 | 全黄性高潮 | 亚洲精品国产精品乱码 | 亚洲天堂色图 | 欧美中文日韩 | 国产精品一区二区三区在线免费观看 | 亚洲精品3 | av毛片观看 | 国模私拍一区二区 | 全部免费毛片在线播放高潮 | 涩涩资源站 | 女同亚洲精品一区二区三 | 色戒av| 日韩三级观看 | 狠狠干干 | 国产又粗又猛又爽又黄的视频小说 | 国产黄色自拍视频 | 丰满少妇久久久久久久 | 欧美性生活一区二区 | a级黄色在线观看 | yw在线观看| 视频在线观看你懂的 | 91se在线| 免费毛片观看 | 久久久精品国产 | 日本黄色免费观看 | 亚洲欧美日韩一区二区三区在线观看 | 国产美女永久免费 | 中文字幕在线观看免费 | 伊人中文字幕在线 | 国产精品日韩专区 | 精品成人av|