SAS学习笔记
入門,編程環境
沒在學校系統學習過SAS,接觸SAS也是最近兩個月的事情,SAS官方給的學習資源很多,有些甚至還專門安排成課程的形式,有視頻和選擇題自測,課后練習自己做,在官網注冊好賬號,根據提示操作,就能用到SAS Studio(在網頁上運行)的學術版就可以上課了,我9月看的是SAS programming for R users 這門課,還有免費的電子書,因為我在大學期間用R比較多,所以選的這門課。
課程鏈接🔗:https://support.sas.com/edu/schedules.html?ctry=us&crs=SP4R#s1=3
pdf電子書:https://support.sas.com/content/dam/SAS/support/en/books/free-books/sas-programming-for-r-users.pdf
基本概念
SAS和特點是它很結構化,靈活性比不上R, 在藥企和金融機構用的多,原因貌似是SAS作為付費軟件,分析出的結果更被政府機構所信任。R是開源的,任何人都能上傳自己的package。SAS很重要的一點是每句statement后面一定一定要加分號;,很多時候報錯就是這個分號忘記了,最常用的語句都是DATA 和PROC,結尾一般是run;。后面比較復雜的就是macro宏變量和宏程序以及PROC SQL(這方面的語句和MySQL很像)。
編程學習總結
導入數據
以下是精簡版,具體看官網的documentation
| 外部文件 .txt .xls .csv等格式 | data步與infile input連用;proc import 和getnames等連用 |
| 自己輸入的數據 | data步與input datalines連用 |
| sas文件 | 先建個library 再讀取 |
常用函數總結
日期類型用的時候在網上查也方便,類型太多,這里不一一列舉
| 去空格類型 | COMPBL(),TRIM() |
| 查找,替換 | INDEX(),VERIFY(),SUBSTR(),ANYALPHA(),ANYDIGIT(),TRANSLATE(),TRANWRD() |
| 提取 | SCAN() |
| 大小寫 | UPCASE(),LOWCASE() |
| 左右對齊 | LEFT(),RIGHT() |
| 缺失值 | MISSING() 1:缺失 0:不缺 |
| 取整 | INT(),ROUND() ,CEIL() ,FLOOR() |
| 字符到數字 | INPUT() |
| 數字到字符 | PUT() |
| 描述性統計 | SUM,MIN,MAX,N,NMISS |
| 數學運算 | MOD,ABS,SQRT,EXP,LOG |
| 字符連接 | CAT(),CATX(),CATS() |
常用PROC 命令
| PROC FORMAT | eg.把學生的成績分類,用A-E表示 |
| PROC SORT | 排序 |
| PROC TRANSPOSE | 和轉置矩陣類似,可把某一行轉成好幾行 |
| PROC PRINT | 將結果輸出為表 |
| PROC PRINTTO | 可將結果輸出到.txt,.xls等文件 |
| PROC CONTENTS | 數據集的目錄概覽 |
| PROC APPEND | 連接兩個表 |
| PROC EXPORT | 讀取數據并輸出到外部文件 |
| PROC IMPORT | 導入數據 |
總結
- 上一篇: 20200726 plecs 元件显示变
- 下一篇: java复制pdf_java – 使用i