sas 分析分类数据(1)
生活随笔
收集整理的這篇文章主要介紹了
sas 分析分类数据(1)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本篇主要通過案例分析, 了解和掌握sas的一些基礎知識。
基礎知識點有:
目錄
創建sas數據集
了解proc mean & proc freq 過程步
給變量添標簽
給變量值添加標簽
重編碼數據
用輸出格式重編碼變量
創建sas數據集
data quest;input ID $ 1-3AGE 4-5GENDER $ 6RACE $ 7MARITAL $ 8EDUCATION $ 9PRESIDENT 10ARMS 11CITIES 12;DATALINES;001091111232002452222422003351324442004271111121005682132333006651243425; run;了解proc mean & proc freq 過程步
/* maxdec=2 表示保留小數點后兩位 n 表示計算未缺失觀測值數量 mean 表示計算平均數 std 表示計算標準差 clm 表示計算平均數的95%置信區間 */proc means data=quest maxdec=2 n mean std clm;title "questionnair analysis";var age; run;proc freq data=quest;title "Frequency counts for categorical variables";tables GENDER RACE MARITAL EDUCATION PRESIDENT ARMS CITIES; /*tables 語句后,列出需要計算頻數的各個變量*//*tables GENDER -- CITIES; /*符號--, 表示包含數據集從GENDER到CITIES之間依次排列的所有變量*/ run;給變量添標簽
**給變量添標簽; /*可以利用label語句給每個變量名打上標簽,但標簽字符至多包括256個字符(每個空格算一個字符) 且必須在單或雙引號內*/data quest;input ID $ 1-3AGE 4-5GENDER $ 6RACE $ 7MARITAL $ 8EDUCATION $ 9PRESIDENT 10ARMS 11CITIES 12;label MARITAL = "婚姻狀況"EDUCATION = "教育水平"PRESIDENT = "對總統工作的評價"ARMS = "增加軍費的開支"CITIES = "對大城市提供政府援助";DATALINES;001091111232002452222422003351324442004271111121005682132333006651243425; run;給變量值添加標簽
**給變量值添加標簽(輸出格式); /*1.為每個變量定義變量值的內容*/ /*2.使用format語句與1個或多個變量名聯系起來*//* $SEXFMT 表示輸出格式名 (長度為1-32個字符); '1' 表示變量值 'Male' 表示輸出格式值(最長為32767字符) 輸出格式名設置注意點: 1.最好不以數字結尾,不可與sas內置格式名相同, 格式名和變量名可以相同; 2.可以是一個單獨值、一個范圍、關鍵詞或三者結合; 3.若對字符變量定義輸出格式,格式名必須以符號"$"開頭;*//* 在DATA步驟或PROC步驟中均可以使用format語句; 若把format語句放在data步,在之后的的所有過程中格式的值和指定的變量關聯; 若把format語句放在PROC步,格式的值將只影響該過程; */proc format;value $SEXFMT '1' = 'Male''2' = 'Female'other = 'Miscoded';value $RACE '1' = 'white''2' = 'african am.''3' = 'hispanic''4' = 'other';value $OSCAR '1' = 'single''2' = 'married''3' = 'widowed''4' = 'divorced';value $EDUC '1' = 'high sch or less''2' = 'two yr. college''3' = 'four yr. college''4' = 'graduate degree';value LIKERT 1 = 'str disagree'2 = 'disagree'3 = 'no opinion'4 = 'agree'5 = 'str agree';value AGEFMT 1 = '0-20'2 = '21-40'3 = '41-60'4 = '>60'; run;/*format語句放在DATA步驟中*/data quest;input ID $ 1-3AGE 4-5GENDER $ 6RACE $ 7MARITAL $ 8EDUCATION $ 9PRESIDENT 10ARMS 11CITIES 12;label MARITAL = "婚姻狀況"EDUCATION = "教育水平"PRESIDENT = "對總統工作的評價"ARMS = "增加軍費的開支"CITIES = "對大城市提供政府援助";format GENDER $SEXFMT. /*在format語句中,每個格式名后應有一個句號(.),目的有助于區別變量名和格式名*/RACE $RACE.MARITAL $OSCAR.EDUCATION $EDUC.PRESIDENT ARMS CITIES LIKERT.;DATALINES;001091111232002452222422003351324442004271111121005682132333006651243425; run;重編碼數據
**重編碼數據; /* if condition then statement; else if condition then statement; */ data quest;input ID $ 1-3AGE 4-5GENDER $ 6RACE $ 7MARITAL $ 8EDUCATION $ 9PRESIDENT 10ARMS 11CITIES 12;if age > 0 and age <= 20 then AGEGRP = 1;else if age > 20 and age <= 40 then AGEGRP = 2;else if age > 40 and age <= 60 then AGEGRP = 3;else if age > 60 then AGEGRP = 4;label MARITAL = "婚姻狀況"EDUCATION = "教育水平"PRESIDENT = "對總統工作的評價"ARMS = "增加軍費的開支"CITIES = "對大城市提供政府援助"AGEGRP = "年齡組";format GENDER $SEXFMT. RACE $RACE.MARITAL $OSCAR.EDUCATION $EDUC.PRESIDENT ARMS CITIES LIKERT.;DATALINES;001091111232002452222422003351324442004271111121005682132333006651243425; run; proc freq data=quest;tables GENDER -- AGEGRP; run;用輸出格式重編碼變量
/*使用輸出格式重編碼變量*/ /*在不生成新變量的情況下重編碼AGE的方法*//* 關鍵詞 LOW , HIGH, OTHER LOW & HIGH: 分別用來指定數據集中最小值和最大值(不包括缺失值) ; OTHER: 代表在之前設定的格式范圍中沒有出現的其他值; LOW-20 :表示從最小值到20之間的所有值; 注意:數值型變量中,關鍵詞LOW不包括缺失值,但字符型型變量則包括;*/proc format;value AGEGRP LOW-20 = '0-20'21-40 = '21-40'41-60 = '41-60'60-HIGH = '>60'. = 'NULL'OTHER = 'OUT OF RANGE'; run;proc freq data=quest;tables age;format age AGEGRP.; run;?
總結
以上是生活随笔為你收集整理的sas 分析分类数据(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 猎豹移动面经
- 下一篇: 食物热量、卡路里查询API接口,免费好用