第一篇:SAS數(shù)據(jù)輸入總結(jié)
SAS學(xué)習(xí)總結(jié)
一、SAS的數(shù)據(jù)錄入
(1)直接輸入
data first;
input name $ salary;
datalines;a 12b 34c 56d 78
;
run;
注意:datalines的位置以及數(shù)據(jù)錄入后的分號(hào)
(2)借助infile可讀入文本格式為dat、txt、csv
A.最簡(jiǎn)單的形式
data first;
infile 'c:userslichaodesktopsasdatatoadjump.dat';
input Toadname $ Jump1 Jump2 Jump3 Jump4;
run;
proc print data=work.first;
run;
B.有空格的情況,需要數(shù)一下
data second;
infile 'c:userslichaodesktopsasdataonionring.dat';
input Name $ 1-19 Jump1 22-24 Jump2 25-28 Jump3 30-31 Jump4 33-34 Jump5 37 Jump6 40;
run;
proc print data=work.second;
run;
C.格式重復(fù)的情況
data third;
infile 'c:userslichaodesktopsasdataexercise.dat';
input Num1 Num2 Num3 @@;
run;
proc print data=work.third;
run;
注意:@@的用法
D.其他的格式
Ⅰ.輸出特定的行
data icecream;
infile 'c:userslichaodesktopsasdataicecreamsales2.dat' firstobs=3 obs=5;
input Flavor $ 1-9 Location Boxessold;
run;
proc print data=icecream;
run;
注意:firstobs和obs的位置不要改變,而且兩者可以單獨(dú)使用
Ⅱ.有缺失值
data class;
infile 'c:userslichaodesktopsasdataallscores.dat' missover;
run;
proc print data=class;
run;
注意:在有缺失值的情況下,如果輸出有錯(cuò)誤的話就用missover
Ⅲ.非正常的輸入:
data third;
infile 'c:userslichaodesktopsasdatapumpkin.dat';
input Name $16.num 3.type $2.date $11.(num1 num2 num3 num4 num5)(4.1);run;
proc print data=third;
run;
注意:16.和3.、4.1等的表示方法,都是表示寬度,相比較數(shù)列數(shù)的方法更有效;輸入格式相同的話可以加括號(hào)把格式寫在后面的括號(hào)里。
Ⅳ.日期的輸入:
按照數(shù)值處理,根據(jù)情況,使用MMDDYYw.或者 DDMMYYw.(3)import 錄入其他格式的文件(可導(dǎo)入的格式非常多)
proc import datafile='c:userslichaodesktopsasdatasecond.xls' dbms=xls out=mydata replace;sheet=“sheet1$”;
range=“a1:b3”;
run;
proc print data=mydata;
run;
注意:sheet表示單元表的名字,range表示導(dǎo)入的數(shù)據(jù)范圍
input name $ test1 test2 test3 test4 test5;
第二篇:常用sas語(yǔ)句總結(jié)
Engine(引擎)是一種訪問架構(gòu),SAS系統(tǒng)通過(guò)它迅速地對(duì)其它數(shù)據(jù)庫(kù)管理系統(tǒng)中文件進(jìn)行讀入和寫出。
1.LIBNAME語(yǔ)句
1.1解讀
定義 SAS 邏輯庫(kù)。具體地說(shuō),它可以
(1)向 SAS 標(biāo)識(shí) SAS 邏輯庫(kù)
(2)將引擎與邏輯庫(kù)關(guān)聯(lián)
(3)讓您指定邏輯庫(kù)的選項(xiàng)
(4)為邏輯庫(kù)指定邏輯庫(kù)引用名
通俗得講,LIBNAME語(yǔ)句把一個(gè)libref(庫(kù)標(biāo)記名)和一個(gè)目錄聯(lián)系起來(lái),使用戶可以在SAS語(yǔ)句中使用庫(kù)標(biāo)記來(lái)指示這個(gè)目錄。提交該程序時(shí)自動(dòng)引用該 SAS 邏輯庫(kù) 1.2 語(yǔ)句格式
1、LIBNAME libref
2、LIBNAME libref Clear;
3、LIBNAME libref |_ All_ List;三種格式反映了LIBNAME語(yǔ)句的三種用法 選項(xiàng)說(shuō)明
LibrefEngineSas-Data-LibraryAccess=Readonly|TempClear_All_List
規(guī)定邏輯庫(kù)規(guī)定引擎規(guī)定主機(jī)系統(tǒng)下一個(gè)有效的物理地址規(guī)定邏輯庫(kù)為只讀或可修改屬性清除與庫(kù)標(biāo)記的聯(lián)系列出所有邏輯庫(kù)的屬性在Log窗口列出邏輯庫(kù)的屬性。2.length語(yǔ)句
SAS變量的基本類型有兩種:數(shù)值型和字符型。數(shù)值型變量在數(shù)據(jù)集中的存貯一般使用8個(gè)字節(jié)。SAS的字符型變量缺省的長(zhǎng)度是8個(gè)英文字符,可以使用LENGTH語(yǔ)句指定變量長(zhǎng)度,LENGTH語(yǔ)句一般應(yīng)出現(xiàn)在定義變量的Input語(yǔ)句之前,格式為: LENGTH 字符型變量名 $長(zhǎng)度 例如:length name $20 ;
3.input 語(yǔ)句
3.1解讀
INPUT語(yǔ)句 用于向系統(tǒng)表明如何讀入每一條記錄。它的主要功能有:讀入由語(yǔ)句指定的數(shù)據(jù)列;為相應(yīng)的數(shù)據(jù)域定義變量名;確定變量的讀入模式(共有四種模式:column模式,formatted模式,list模式及named模式)。
input語(yǔ)句執(zhí)行后,SAS將讀取的數(shù)據(jù)暫時(shí)先保存在內(nèi)存緩沖區(qū),然后執(zhí)行后面的語(yǔ)句,后面的語(yǔ)句可以對(duì)暫存在內(nèi)存緩沖區(qū)中的變量值進(jìn)行修改,到最后才將整條數(shù)據(jù)寫入數(shù)據(jù)集,寫入數(shù)據(jù)集的數(shù)據(jù)就不能在當(dāng)前data步中再修改。
注意:INFILE語(yǔ)句用于確定一個(gè)包含原始數(shù)據(jù)的外部文件,必須在執(zhí)行INPUT語(yǔ)句前執(zhí)行,如果要在程序中直接嵌入數(shù)據(jù),就用CARDS語(yǔ)句代替INFILE語(yǔ)句。
3.2 語(yǔ)句格式(Column模式)
INPUT variable <$> start-column<-end-column><.decimals><@|@@>;
說(shuō)明: variable 變量名
$ 跟在變量后面,表明這個(gè)變量是字符型變量 start-column 起始列號(hào)
end-column 結(jié)束列號(hào),如果變量值只包含一列,則可省略
.decimals 如果輸入值中沒有包含一個(gè)隔開整數(shù)部分與小數(shù)部分的小數(shù)點(diǎn),decimals用來(lái)顯性的指明小數(shù)部分 @ 單尾符 @@ 雙尾符
舉例說(shuō)明:input name $ 1-10 pulse 11-13 waist 14-15 gender $ 16;
4.SET 語(yǔ)句
Set語(yǔ)句可以用來(lái)讀取單個(gè)數(shù)據(jù)集中的數(shù)據(jù),也可以用來(lái)讀取多個(gè)數(shù)據(jù)集中的數(shù)據(jù)拼接SAS新的數(shù)據(jù)集。程序?yàn)椋?/p>
DATA 新數(shù)據(jù)集;
SET 輸入數(shù)據(jù)集1 輸入數(shù)據(jù)集2 ….; Run;如果不適用DROP=和KEEP=選項(xiàng),在新的數(shù)據(jù)集中將包含所有舊數(shù)據(jù)集的變量。
5.DO 循環(huán)語(yǔ)句
語(yǔ)句一:
DO WHILE(expression);...more SAS statements...END;語(yǔ)句二:
DO UNTIL(expression);...more SAS statements...END;語(yǔ)句三:
DO index-variable=start
DO item-1<,…item-n>
DO over array-name;...more SAS statements...END;例如: data test;
input sc01-sc05;
array s sc01-sc05;
do over s;
s= s*100;
end;
cards;0.95 0.88 0.57 0.90 0.65;這個(gè)語(yǔ)句也是SAS比較特殊的循環(huán)結(jié)構(gòu),專用于數(shù)組,將數(shù)組的每一個(gè)元素訪問一遍。
6.IMPROT 語(yǔ)句
import過(guò)程可以讀取的數(shù)據(jù)有Access數(shù)據(jù)庫(kù)、Excel文件和帶分隔符的文件。
6.1語(yǔ)法格式
PROC IMPORT
DATAFILE=“filename” | TABLE=“tablename” OUT=
DATAFILE=“filename” 用來(lái)指定數(shù)據(jù)文件的位置,如果是Access則用TABLE=“tablename”指定需要讀取的數(shù)據(jù)表;
OUT= 指定輸出數(shù)據(jù)集的名稱;
DBMS=identifier 指定導(dǎo)入數(shù)據(jù)表的類型;幾個(gè)常用的DBMS選項(xiàng)如下
ACCESS 讀取MS ACCESS2000/2002數(shù)據(jù)
EXCEL 讀取Excel2000/2002數(shù)據(jù)
CSV 讀取逗號(hào)分隔的文件
DLM 讀取分隔符文件,需要用DELIMITER=指明具體的分隔符
TAB 讀取Tab分隔的文件
REPLACE選項(xiàng)替換原來(lái)已經(jīng)存在的數(shù)據(jù)集,缺省情況下是不替換,并在LOG窗口中予以提示;
6.2 proc import讀取帶分隔符的文件 語(yǔ)法格式: PROC IMPORT DATAFILE= OUT= DBMS= REPLACE;(Data source statements:)DATAROW=n;DELIMITER=;GETNAMES=YES|NO;說(shuō)明:
DBMS= 需要指定DLM,逗號(hào)分隔文件可省略; DATAROW=n;指定從數(shù)據(jù)文件的第幾行開始讀取,該選項(xiàng)缺省情況下,如果getnames=yes則從第二行開始讀取,getnames=no從第一行開始讀?。?DELIMITER=;指定分隔符;
GETNAMES=;告訴SAS是否將數(shù)據(jù)文件的第一行作為變量讀取,該選項(xiàng)缺省為yes。
如果第一行是變量名,而該選項(xiàng)為no則會(huì)將列為數(shù)值型的第一行讀取為缺失值。
當(dāng)指定getnames=no時(shí),對(duì)于DLM文件,則SAS自動(dòng)將變量命名為VAR1, VAR2,...;對(duì)于Excel文件,則SAS自動(dòng)命名變量為F1, F2, … 舉例:
proc import datafile=“C:My Documentsmyfilesdelimiter.txt”
out=mydata
dbms=dlm
replace;
delimiter='&';
getnames=yes;run;6.3 proc import讀取Excel文件 語(yǔ)法格式: PROC IMPORT DATAFILE= OUT= DBMS= REPLACE;(Data source statements:)SHEET=;GETNAMES= YES|NO;注:讀取Excel時(shí),可以不指定DBMS=選項(xiàng)。舉例:
proc import datafile=“c:clinic filesdrug1.xls”
out=drug1;
sheet='lab';
getnames=yes;run;6.4 proc import讀取數(shù)據(jù)庫(kù)表(如Access)語(yǔ)法格式: PROC IMPORT TABLE= OUT= DBMS= REPLACE;(Data source Statements:)DATABASE= PWD= UID= WGDB= 說(shuō)明:
DATABASE= 指明數(shù)據(jù)庫(kù)存放的路徑及名字 UID= 數(shù)據(jù)庫(kù)用戶名 PWD= 密碼 WGDB= 工作組名稱 舉例:
proc import table=“customers”
out=sasuser.cust
dbms=access97;
uid=“userid”;
pwd=“mypassword”;
database=“c:myfileseast.mdb”;
wgdb=“c:winntsystem32security.mdb”;run;通常情況下,proc import是可以不掌握的,通過(guò)視窗操作可能更方便,特不過(guò)用proc import能夠更精細(xì)的控制。在寫import過(guò)程的時(shí)候,要特別注意分號(hào)的位置,從最開始的語(yǔ)法格式那里可以看出,proc import后面的一般選項(xiàng)是連在一起寫的,中間用空格隔開,最后才以分號(hào)結(jié)尾;而數(shù)據(jù)源選項(xiàng)則每一項(xiàng)都要以分號(hào)結(jié)束。這些地方往往容易出錯(cuò)。
7.CARDS語(yǔ)句
用于直接輸入數(shù)據(jù),標(biāo)志著數(shù)據(jù)塊的開始。格式如下:
CARDS;
數(shù)據(jù)塊
;
8.SORT和BY語(yǔ)句
SORT語(yǔ)句將指定的數(shù)據(jù)集按指定變量排序。使用BY語(yǔ)句可以使生成的數(shù)據(jù)集按照某個(gè)變量排序,但輸入數(shù)據(jù)集必須預(yù)先按該變量排序。使用PROC SORT語(yǔ)句可以進(jìn)行排序,一般形式為:
PROC SORT DATA=數(shù)據(jù)集 OUT=排序后的數(shù)據(jù)集; BY 變量; RUN;
e.g.Proc sort date=stockreturn;
by firm date;run;
9.宏
在宏變量前加&來(lái)引用宏變量的值。
用一個(gè)百分號(hào)(%)加宏名稱就可以調(diào)用該宏。%macro 宏變量名:定義宏變量
%DO
:條件處理至一個(gè)匹配的%END出現(xiàn) %If-%Then /%Else :有條件執(zhí)行宏
10.MERGE語(yǔ)句
用MERGE語(yǔ)句合并SAS數(shù)據(jù)集。但是,輸入數(shù)據(jù)集必須預(yù)先按該BY變量排序。語(yǔ)句一般形式為: 式為:
DATA 新數(shù)據(jù)集 ;
MERGE 輸入數(shù)據(jù)集1 輸入數(shù)據(jù)集2 … ; BY 變量; RUN;
e.g.下圖展示合并數(shù)據(jù)集A、B 的結(jié)果:
Data gooddata;Merge stockreturn sample(in=a);By firm;If a=1;Run;注意:這里merge語(yǔ)句使用了兩個(gè)選項(xiàng),當(dāng)一個(gè)SAS數(shù)據(jù)步同時(shí)讀入多個(gè)SAS數(shù)據(jù)集時(shí),可以使用IN=選項(xiàng)來(lái)確定本觀測(cè)來(lái)自哪個(gè)數(shù)據(jù)集,in=選項(xiàng)的一般形式是:SAS-data-set(IN=variable)。其中,variable是一個(gè)臨時(shí)的數(shù)值型變量; Variable=0 表示觀測(cè)不是來(lái)自本數(shù)據(jù)集; Variable=1表示觀測(cè)是來(lái)自本數(shù)據(jù)集;
在這里使用IN選項(xiàng)的目的就是把所有來(lái)自數(shù)據(jù)集sample的觀測(cè)輸出到新數(shù)據(jù)集gooddata中。
11.REG語(yǔ)句
REG過(guò)程用來(lái)進(jìn)行回歸分析。
在MODEL語(yǔ)句中有許多選項(xiàng),其中的幾個(gè)選項(xiàng)如下:
CLM
回歸估計(jì)值0.95置信區(qū)間的上界和下界。CLI
因變量預(yù)報(bào)值的0.95置信區(qū)間。
P
由輸入數(shù)據(jù)和回歸方程計(jì)算預(yù)報(bào)值。輸出觀測(cè)序號(hào),ID變量(需事先規(guī)定ID語(yǔ)句),實(shí)際值,預(yù)報(bào)值和殘差。如果已規(guī)定了CLM、CLI或R,選項(xiàng)P就不需要了。
R
要求殘差分析,輸出包括選項(xiàng)P的一切內(nèi)容外,還有其它一些分析
12.MEANS語(yǔ)句
MEANS對(duì)指定的數(shù)值變量進(jìn)行簡(jiǎn)單的統(tǒng)計(jì)描述。13.OPTIONS語(yǔ)句
?
OPTIONS語(yǔ)句臨時(shí)改變SAS系統(tǒng)的選項(xiàng)設(shè)置。?
改變后的選項(xiàng)設(shè)置在以后的SAS會(huì)話或作業(yè)中保持有效,直到再次改變它們。
?
改變SAS系統(tǒng)選項(xiàng)可以用OPTIONS語(yǔ)句,或用顯示管理命令OPTIONS菜單。
語(yǔ)句格式:
OPTIONS option-1 <...option-n>;其中:
option規(guī)定要改變的SAS系統(tǒng)選項(xiàng)。
第三篇:SAS基礎(chǔ)語(yǔ)法總結(jié)
一、DATA語(yǔ)句
DATA語(yǔ)句的作用是表明數(shù)據(jù)步的開始并給出數(shù)據(jù)集 的名稱。
DATA語(yǔ)句的格式為:
DATA 數(shù)據(jù)集的名稱;
數(shù)據(jù)集的名稱必須以英文字母開始,最長(zhǎng)不超過(guò)8個(gè)字符。
二、CARDS語(yǔ)句
CARDS語(yǔ)句的作用是與“;”呼應(yīng),標(biāo)志數(shù)據(jù)行的開始與結(jié)束。
CARDS語(yǔ)句的格式為:
CARDS;數(shù)據(jù)行;如果使用CARS語(yǔ)句,在CARDS的后面必須緊跟數(shù)據(jù)行,并且在一個(gè)數(shù)據(jù)步中最多只能使用一個(gè)CARDS語(yǔ)句。
三、INPUT 語(yǔ)句
INPUT語(yǔ)句的作用是描述輸入記錄中的數(shù)據(jù),并把輸入值賦給相應(yīng)的變量。INPUT語(yǔ)句的格式為:
INPUT 數(shù)據(jù)的變量名、順序及類型;
用INPUT語(yǔ)句是為了讀取外部文件的數(shù)據(jù)或跟在CARDS語(yǔ)句后面的數(shù)據(jù)。
SAS默認(rèn)用INPUT語(yǔ)句讀取的是數(shù)值類型變量的值。若在變量后加’$’,則該變量為字符串類型變量。
為從一行讀入多個(gè)觀測(cè)值,應(yīng)使用行保持符’@@’限制度數(shù)指針,使其保持在這一行上讀數(shù),知道數(shù)據(jù)讀完為止。
例如:
Input x y@@;
Cards;
8
;
四、INFILE語(yǔ)句
Infile語(yǔ)句的作用是指明外部數(shù)據(jù)文件的名稱,并從這個(gè)外部數(shù)據(jù)文件中讀取數(shù)據(jù)。
INFILE語(yǔ)句的格式為: INFILE ‘外部數(shù)據(jù)文件名’;
例如,在D盤上有一個(gè)名稱為xiao.txt的數(shù)據(jù)文件,其中數(shù)據(jù)排列為:
A 3.16 B 2.9 B 5.8 B 3 A 4.9 A 4.17 用 INFILE語(yǔ)句讀取數(shù)據(jù)的代碼為:
Data ex;Infile ‘D:xiao.txt’;Input z$ x@@;Proc print;
Run;
五、SET語(yǔ)句
SET語(yǔ)句的作用是按照指定的條件從指定的數(shù)據(jù)集中讀取數(shù)據(jù)機(jī)那里新的數(shù)據(jù)集獲獎(jiǎng)兩個(gè)數(shù)據(jù)集中的觀測(cè)值縱向連接建立新的數(shù)據(jù)集。
SET語(yǔ)句的格式為:
SET 數(shù)據(jù)集名表;例如,從數(shù)據(jù)集EX中讀取數(shù)據(jù)建立新的數(shù)據(jù)集EX1,可編輯語(yǔ)句:
DATA EX1;SET EX;將兩個(gè)數(shù)據(jù)集D1和D2中的觀測(cè)值縱向連接建立新的數(shù)據(jù)集D3,可編輯語(yǔ)句:
DATA D3;SET D1 D2;
六、MERGE語(yǔ)句
MERGE語(yǔ)句的作用是將兩個(gè)數(shù)據(jù)集中的各個(gè)觀測(cè)值橫向合并建立新的數(shù)據(jù)集。
MERGE語(yǔ)句的格式為:
MERGE 數(shù)據(jù)集名表;例如,將數(shù)據(jù)集D1與D2中的觀測(cè)值橫向合并建立新的數(shù)據(jù)集D3,可編輯語(yǔ)句:
DATA D3;MERGE D1 D2;
RUN;
七、DROP語(yǔ)句
DROP語(yǔ)句的作用是指定不寫到數(shù)據(jù)集中的變量。DROP語(yǔ)句的格式為:
DROP 變量名表;如果在DATA步中有DROP語(yǔ)句,那么DROP語(yǔ)句中一出現(xiàn)的變量的觀測(cè)值被刪除,未出現(xiàn)的變量的觀測(cè)值仍保留在新的數(shù)據(jù)集中。
八、KEEP語(yǔ)句
KEEP語(yǔ)句的作用是指定要寫到數(shù)據(jù)集中的變量。KEEP語(yǔ)句的格式為:
KEEP 變量名表;如果在DATA步4中有KEEP語(yǔ)句,那么KEEP語(yǔ)句中未出現(xiàn)的變量的觀測(cè)值被刪除,已出現(xiàn)的變量的觀測(cè)值被保留在西你的數(shù)據(jù)集中。
九、IF語(yǔ)句
IF語(yǔ)句的作用是使SAS繼續(xù)處理符合IF條件規(guī)定的觀測(cè)值,因而所得到的數(shù)據(jù)集是原數(shù)據(jù)集的子集。IF語(yǔ)句的格式為:
IF 條件表達(dá)式;如果表達(dá)式的值為真,SAS處理當(dāng)前的觀測(cè)值,執(zhí)行DADA步中的語(yǔ)句,如果表達(dá)式的值是假,SAS馬上返回到DATA步的開始,不處理當(dāng)前的觀測(cè)值,不執(zhí)行DADA步中的語(yǔ)句。
十、PROC語(yǔ)句
PROC語(yǔ)句的作用是指定需要調(diào)用的過(guò)程以及該過(guò)程的若干選擇項(xiàng)。PROC語(yǔ)句的格式為:
PROC SAS的過(guò)程名;例如,調(diào)用print過(guò)程,打印數(shù)據(jù)集ex的內(nèi)容:
PROC print data=ex;這里的data=數(shù)據(jù)集名,用來(lái)指定本過(guò)程所要處理的數(shù)據(jù)集名,如缺省則處理最新建立的數(shù)據(jù)集。在PROC步中,還必須確認(rèn)一些最基本的信息,包括:(1)處理的數(shù)據(jù)集名,格式為data=數(shù)據(jù)集名;(2)所涉及的變量名,格式為 var 變量名;(3)分組處理的標(biāo)志,格式為 by 組變量名;
十一、CLASS語(yǔ)句
class語(yǔ)句的作用是在分析的過(guò)程中定義分類變量,再按分類變量的值分組進(jìn)行數(shù)據(jù)分析。
Class語(yǔ)句的格式為:
CLASS 變量名;CLASS語(yǔ)句對(duì)數(shù)據(jù)分析所起的作用類似于by語(yǔ)句,但是它們打印輸出的格式不相同,并且by語(yǔ)句要求先對(duì)變量排序后才能使用。
十二、FREQ語(yǔ)句
freq語(yǔ)句的作用是規(guī)定一個(gè)變量,以它的值作為數(shù)據(jù)集中觀測(cè)值出現(xiàn)的頻數(shù)。
FREQ語(yǔ)句的格式為:
FREQ 變量;假定某觀測(cè)值的FREQ變量的值為n,在分析時(shí),改數(shù)據(jù)集中這個(gè)觀測(cè)值出現(xiàn)的頻數(shù)便是n。
若n<1,則觀測(cè)值不參加分析
若n不是整數(shù),則自動(dòng)取整。觀測(cè)值的總數(shù)等于FREQ變量的和。
常用的SAS過(guò)程步
一、print過(guò)程
print過(guò)程可以打印一個(gè)SAS數(shù)據(jù)集中的全體或部分觀測(cè)值,還可以打印數(shù) 值變量的綜合或部分和。
print過(guò)程中經(jīng)常使用的語(yǔ)句有:
proc print [選擇項(xiàng)];
var 變量表;by 變量表;sum 變量表;在proc print 語(yǔ)句中可能出現(xiàn)的選擇項(xiàng)有
data=數(shù)據(jù)集名,如果省略這一選擇,則打印最新建立的數(shù)據(jù)集中的數(shù)據(jù)。
sum語(yǔ)句被用來(lái)求變量表中諸變量的總和。
二、sort過(guò)程
SORT過(guò)程將SAS數(shù)據(jù)集中的觀測(cè)值按一個(gè)或多個(gè)變量的值進(jìn)行排序,以便 其他的SAS過(guò)程利用by語(yǔ)句對(duì)這些觀測(cè)值進(jìn)行分組處理,排序后的觀測(cè)值存放在一個(gè)新的SAS數(shù)據(jù)集中或者代替原來(lái)的數(shù)據(jù)集。在SORT過(guò)程中經(jīng)常使用的語(yǔ)句有:
proc sort [選擇項(xiàng)];
by 變量表;在proc sort語(yǔ)句中可能出現(xiàn)的選擇項(xiàng)有:
data=數(shù)據(jù)集名,用來(lái)說(shuō)明要排序的數(shù)據(jù)集名,如果省略這一選擇,則指定最新建立的數(shù)據(jù)集。
out=數(shù)據(jù)集名,用來(lái)說(shuō)明要輸出的數(shù)據(jù)集名,如果省略這一選擇,則原來(lái)的數(shù)據(jù)集被輸出的數(shù)據(jù)集替換。sort過(guò)程默認(rèn)按升序排列,若要按降序排列,在對(duì)應(yīng)變量前增加選擇項(xiàng)descending。
三、FORMAT過(guò)程
format過(guò)程可以對(duì)字符或數(shù)值變量定義一個(gè)所需要的輸出格式,使data步以及含有format的語(yǔ)句的過(guò)程步中的變量都受到這一輸出格式的限制。
通過(guò)proc FORMAT過(guò)程所定義的格式包括:(1)將輸出值轉(zhuǎn)換成不同的值、數(shù)值可以變成字符,字符可以變成另外的字符。(2)使輸出值保留一定的小數(shù)位,否則輸出值將有8個(gè)小數(shù)位。FORMAT過(guò)程由下列語(yǔ)句控制:
PROC FORMAT;
VALUE 格式名 格式的定義;為便于識(shí)別,格式名通常是原變量名加fmt
如果原變量是字符串,則應(yīng)當(dāng)在格式名前加字符串符號(hào)。后面的過(guò)程中,如果涉及到某變量的輸出格式,必須有語(yǔ)句:
FORMAT 變量名 格式名
四、standard過(guò)程
standtard過(guò)程按給定的平均值和標(biāo)準(zhǔn)差對(duì)SAS數(shù)據(jù)集中的部分或全體變量進(jìn)行“標(biāo)準(zhǔn)化”變換,并形成新的數(shù)據(jù)集。
在standard過(guò)程中經(jīng)常使用的語(yǔ)句有:
proc standard [選擇項(xiàng)];
var 變量表;freq 變量表;by 變量表;在proc standard語(yǔ)句中可能出現(xiàn)的選擇項(xiàng)有:
data=數(shù)據(jù)集名,用來(lái)說(shuō)明要“標(biāo)準(zhǔn)化”變換的數(shù)據(jù)集名,如果省略這一選擇,則指定最新建立的數(shù)據(jù)集。
out=數(shù)據(jù)集名,用來(lái)說(shuō)明含有“標(biāo)準(zhǔn)化”變量的新數(shù)據(jù)集名,如果忽略這一選擇,SAS將按內(nèi)部程式給出新的數(shù)據(jù)集名。
此過(guò)程將打印輸出每個(gè)“標(biāo)準(zhǔn)化”變量的輸入頻數(shù)、平均值及標(biāo)準(zhǔn)差。
五、TRANSPOSE過(guò)程
transpose過(guò)程將一個(gè)數(shù)據(jù)集進(jìn)行轉(zhuǎn)置,使行變?yōu)榱卸凶優(yōu)樾校簿褪鞘乖瓟?shù)據(jù)集中樣品的觀測(cè)值變換成新數(shù)據(jù)集中變量的觀測(cè)值,而原數(shù)據(jù)集中變量的觀測(cè)值則變成新數(shù)據(jù)集中樣品的觀測(cè)值。transpose過(guò)程的格式為:
proc transpose [選擇項(xiàng)];var 變量表;by 變量表;在proc transpose語(yǔ)句中可以出現(xiàn)的選擇項(xiàng)有:
(1)data=數(shù)據(jù)集名,用來(lái)說(shuō)明要轉(zhuǎn)置的數(shù)據(jù)集名;如果忽略這一選擇,則指定最新建立的數(shù)據(jù)集。
(2)out=數(shù)據(jù)集名,用來(lái)說(shuō)明轉(zhuǎn)置所建立的心數(shù)據(jù)集名,如果省略這一選擇,SAS將按內(nèi)部程式給出新的數(shù)據(jù)集名。
(3)prefix=字母(指定一個(gè)新前綴,用來(lái)構(gòu)成新變量名)
(4)name=字母(為含有輸入數(shù)據(jù)集中被轉(zhuǎn)置的變量名的輸出數(shù)據(jù)集中的變量命名,如果省略這一選擇,SAS將按內(nèi)部程式指定)。
在var語(yǔ)句中應(yīng)列出要被轉(zhuǎn)置的變量名,否則原數(shù)據(jù)集中未在其他語(yǔ)句中列出的所有數(shù)值型變量都將被轉(zhuǎn)置,字符型變量必須在var語(yǔ)句中列出才能被轉(zhuǎn)置,未被轉(zhuǎn)置的變量不進(jìn)入新的數(shù)據(jù)集,除非它們已經(jīng)被列入copy或by語(yǔ)句。
by語(yǔ)句使輸入數(shù)據(jù)集分組轉(zhuǎn)置,分組變量被包括在輸出數(shù)據(jù)集中。
第四篇:VB網(wǎng)格中輸入數(shù)據(jù)
VB網(wǎng)格中輸入數(shù)據(jù)
VISUAL BASIC提供的網(wǎng)格控制(Grid)主要是用來(lái)直觀地輸出數(shù)據(jù),但不能輸入數(shù)據(jù),使用起來(lái)很不方便。能不能向網(wǎng)格中輸入數(shù)據(jù)呢?筆者提出了兩種解決方法,供大家參考:方法一:
改寫網(wǎng)格的KeyPress事件,在每次有合法字符輸入時(shí),把Grid的Text項(xiàng)和輸入字符連接。這種方法缺點(diǎn)是:一代碼較復(fù)雜,需要處理各種ASCII字符信息;二是通過(guò)編程只能實(shí)現(xiàn)很少的編輯功能,如用退格鍵刪除前一字符,用Del鍵刪除所有字符;三是這種方法不能輸入漢字,使用起來(lái)受到很大的限制。
方法二:
利用一文本框作為緩沖,實(shí)現(xiàn)編輯功能。當(dāng)網(wǎng)格改變行列時(shí),把網(wǎng)格當(dāng)前行列的內(nèi)容傳遞給文本框;當(dāng)網(wǎng)格中有ASCII字符產(chǎn)生時(shí),把輸入焦點(diǎn)設(shè)置為文本框,并把輸入的ASCII字符送給文本框;當(dāng)編輯完文本框的內(nèi)容時(shí),按Enter鍵或TAB鍵,把文本框的內(nèi)容送給網(wǎng)格的當(dāng)前行列,并把輸入焦點(diǎn)設(shè)置為網(wǎng)格。如下程序所示(其中Textl為文本框,Labell為標(biāo)簽,Gridl為網(wǎng)格):Option ExplicitConst EnterAsc=13Const TabAsc=9Private Sub Form-Load()Labell.Caption=”請(qǐng)輸入”End SubPrivate Sub Gridl-KeyPress(KeyAscii As Integer)Text1.StFocusTextl.SelStart=0If KeyAscii<>EnterAsc And KeyAscii<>TabAsc ThenSendKeys Chr(KeyAscii)
End IFEnd SubPrivate Sub Gridl-RowColChange()
Textl.Text=Grid1.TextEnd SubPrivate Sub Text1-KeyPress(KeyAscii As Integer)If KeyAscii=EnterAsc ThenGrid1.SetFocusKeyAscii=0End IfEnd SubPrivate Sub Text1-LostFocus()
Grid1.Text=Text1.TextEnd Sub
第五篇:Q2V8程序計(jì)算器輸入數(shù)據(jù)操作方法
Q2V8程序計(jì)算器輸入數(shù)據(jù)操作方法(1);
連續(xù)交點(diǎn)平曲線與豎曲線三維坐標(biāo)正反算步驟;
進(jìn)入 1 菜單
按 MENU2 進(jìn)入 列表模式
按 SHIFTSET UP 設(shè)置串列文件(List File;File 1--6)
按F1設(shè)置(輸入串列文件 號(hào)碼;1--6 中的一個(gè))
清除當(dāng)前選定串列的數(shù)據(jù);
按 MENU1進(jìn)入RUNMAT模式
按 SHIFTPRGM調(diào)出程序功能菜單
清除命令; F6F1F3回車(清除了當(dāng)前串列的全部數(shù)據(jù))
(1)平曲線
按 MENU2進(jìn)入 列表模式(輸入平曲線數(shù)據(jù))
List 1List2List3List4List5List6List7(起點(diǎn)樁號(hào))(起點(diǎn)X坐標(biāo))(起點(diǎn)Y坐標(biāo))(入口緩曲參數(shù))(圓曲半徑)(出口緩曲參數(shù))(交點(diǎn)轉(zhuǎn))(不輸入)(交點(diǎn)X坐標(biāo))(交點(diǎn)Y坐標(biāo))(入口緩曲參數(shù))(圓曲半徑)(出口緩曲參數(shù))(交點(diǎn)轉(zhuǎn)角)
.....................(不輸入)(終點(diǎn)X坐標(biāo))(終點(diǎn)Y坐標(biāo))
按 MENU9進(jìn)入選擇執(zhí)行 Q2V8程序界面回車
輸入1(只計(jì)算平曲線數(shù)據(jù))XY(1)/H(2)/XYH(3)=?
顯示出;平曲線總的交點(diǎn)個(gè)數(shù)(不包含起終點(diǎn))hor-total JD num= 輸入0(重新計(jì)算平曲線數(shù)據(jù))new(0)/old(≠0)hor-JD data=?
顯示出;輸入平曲線 起點(diǎn)的交點(diǎn)號(hào) hor-curve start JD num=?
輸入0(要計(jì)算的起點(diǎn)的交點(diǎn)號(hào))(機(jī)器開始計(jì)算等待.........)
查看計(jì)算的結(jié)果按 MENU2進(jìn)入 列表模式(計(jì)算按結(jié)果如下JD1---JDn)List 1List2List3List4List5List6List7
(起點(diǎn)樁號(hào))(起點(diǎn)X坐標(biāo))(起點(diǎn)Y坐標(biāo))(入口緩曲參數(shù))(圓曲半徑)(出口緩曲參數(shù))(交點(diǎn)轉(zhuǎn)角)(交點(diǎn)樁號(hào))(交點(diǎn)X坐標(biāo))(交點(diǎn)Y坐標(biāo))(入口緩曲參數(shù))(圓曲半徑)(出口緩曲參數(shù))(交點(diǎn)轉(zhuǎn)角)
.....................(終點(diǎn)X坐標(biāo))(終點(diǎn)Y坐標(biāo))
查看轉(zhuǎn)角值(度分秒)也就是(弧度制變 角度制);
按OPTNF6F2F5