編程語言是技能薇芝,其中有一些部分掌握了之后蓬抄,就更容易有了一個(gè)基本的框架,再去學(xué)習(xí)其它的知識(shí)和功能就更輕松一些夯到。有一個(gè)很常見的比喻是:編程學(xué)習(xí)是拼圖嚷缭,拼圖中比較重要的是先拼出整個(gè)圖的框架,之后每一塊的位置才能夠明確的定位黄娘,進(jìn)而形成一個(gè)完整的圖案峭状。
下面提到的這些功能或者知識(shí)點(diǎn)克滴,就可以理解成我在學(xué)習(xí)過程中的第一個(gè)框架逼争。
1. Keep 和 Drop
使用這兩個(gè)命令來選擇想要保留或者舍棄的變量。
在Data Step中劝赔,DROP variable-list
可以刪除變量誓焦,類似的,使用KEEP variable-list
來保留變量着帽。舉例:
Data Test;
Set work.name;
Drop Full_name Gender;
Run;
Test這個(gè)數(shù)據(jù)集將保存work.name這個(gè)數(shù)據(jù)集的所有行杂伟,但是舍棄掉Full_name和Gender這兩個(gè)變量。
Keep和Drop也可以作為Option使用仍翰。 在Data和Set命令中都可以應(yīng)用:DATA output-SAS-Data-set (DROP = variable-list);
或 SET input-SAS-data-set (KEEP = variable-list);
來實(shí)現(xiàn)對(duì)于變量的取舍赫粥,比如:
?
Data Test(Drop = Full_name Gender);
Set work.name;
Run;
Data Test;
Set work.name (Drop = Full_name Gender);
Run;
上面兩個(gè)Data Step 將會(huì)和第一個(gè)同樣的結(jié)果。
2. 導(dǎo)入數(shù)據(jù)
導(dǎo)入數(shù)據(jù)有幾種方法予借,可以使用INFILE
命令越平,也可以使用Proc Import
。
使用INFILE命令
INFILE '<external-file>' DLM=',' <Options>
- 如果數(shù)據(jù)是外部文件的話灵迫,那么exernal-file就是外部文件的路徑
-
DLM
是分隔符秦叛,也就是數(shù)據(jù)使用什么作為分隔的,比如可以指定DLM='|'
- Option中可以使用
DSD
瀑粥,作用是- 把分隔符設(shè)定為‘挣跋,’;
- 如果有兩個(gè)連續(xù)逗號(hào)狞换,保留一個(gè)空值避咆;
- 如果數(shù)值有引號(hào)舟肉,移除;
-
MISSOVER
的作用是如果數(shù)據(jù)不能填滿一行的話查库,則全部計(jì)為空置度气; -
FIRSTOBS=n
可以告訴SAS從哪一行開始讀取數(shù)據(jù);
在INFILE之后膨报,還要使用Format和Informat命令來設(shè)定數(shù)據(jù)的Format和Informat磷籍,使用Input的命令區(qū)分?jǐn)?shù)據(jù)的類型,是字符型還是數(shù)字型现柠。
例子:
Data Test;
NFILE "C:\User\Admin\Desktop\Learing\Sample.csv" DLM=',' DSD MISSOVER FIRSTOBS=2 LRECL=32760;
FORMAT Personal_id $6.
Gender $1.
Account Best12.;
INFORMAT Personal_id $6.
Gender $1.
Account Best12.;
Input Personal_id $
Gender $
Account ;
Run;
導(dǎo)入路徑下的一個(gè)csv文件院领,有三個(gè)變量,其中Personal_id和Gender是字符型變量够吩,Account是數(shù)字型變量比然。
使用Proc Import
這個(gè)命令更多用于EXCEL文件的導(dǎo)入,直接看例子:
Proc Import DATAFILE = "C:\User\Admin\Desktop\Learing\Sample.xlsx"
OUT = DATA
DBMS = EXCEL REPLACE;
SHEET = "SHEET1$";
GETNAMES=YES;
SCANTEXT=YES;
Run;
-
DATAFILE
后面接文件的路徑 -
OUT
后面寫導(dǎo)入的數(shù)據(jù)集的名稱 -
DBMS
指導(dǎo)入的引擎周循,如果是EXCEL文件强法,則寫EXCEL REPLACE
-
SHEET
顧名思義,導(dǎo)入的Sheet的名字湾笛,注意名字后面要加一個(gè)$ -
GETNAMES
是是否從第一列從讀取變量名稱饮怯; -
SCANTEXT
設(shè)置是否掃描整列,并選取最長(zhǎng)的字節(jié)為變量的length -
RANGE
例子中沒寫嚎研,這里提一下RANGE='SHEET1$A1:I12';
可以實(shí)現(xiàn)只導(dǎo)入Excel文件特定的列蓖墅;
3. 一些常用Functions
一些具體的用法不再贅述
字符處理類:
-
SCAN()
提取單詞 -
SUBSTR()
提取字符 -
UPCASE()
大寫 -
PROPCASE()
首字母大寫 -
LENGTH
設(shè)定長(zhǎng)度 -
CATX()
連接字符 -
INPUT()
字符型轉(zhuǎn)成數(shù)字型 -
PUT()
數(shù)字型轉(zhuǎn)成字符型
時(shí)間類
-
Year()
提取年 -
QTR()
提取季度 -
Month()
提取月 -
Day()
提取日 -
Weekday()
提取周幾 -
today()
今天日期值 -
mdy(m,d,y)
某一天的日期值
計(jì)算類
-
Sum()
求和 -
MEAN()
求均值 -
MEDIAN()
求中位數(shù) -
SQRT()
開平方根 -
ABS()
求絕對(duì)值 -
MAX()
最大值 -
LOG()
對(duì)數(shù) -
EXP()
指數(shù)