
- SAS 教程
- SAS - 首頁
- SAS - 概述
- SAS - 環境
- SAS - 使用者介面
- SAS - 程式結構
- SAS - 基本語法
- SAS - 資料集
- SAS - 變數
- SAS - 字串
- SAS - 陣列
- SAS - 數值格式
- SAS - 運算子
- SAS - 迴圈
- SAS - 決策
- SAS - 函式
- SAS - 輸入方法
- SAS - 宏
- SAS - 日期和時間
- SAS 資料集操作
- SAS - 讀取原始資料
- SAS - 寫入資料集
- SAS - 連線資料集
- SAS - 合併資料集
- SAS - 子集資料集
- SAS - 排序資料集
- SAS - 格式化資料集
- SAS - SQL
- SAS - 輸出交付系統
- SAS - 模擬
- SAS 基本統計過程
- SAS - 算術平均數
- SAS - 標準差
- SAS - 頻數分佈
- SAS - 交叉表
- SAS - t 檢驗
- SAS - 相關分析
- SAS - 線性迴歸
- SAS - Bland-Altman 分析
- SAS - 卡方檢驗
- SAS - Fisher 精確檢驗
- SAS - 重複測量分析
- SAS - 單因素方差分析
- SAS - 假設檢驗
- SAS 有用資源
- SAS - 快速指南
- SAS - 有用資源
- SAS - 問答
- SAS - 討論
SAS - 讀取原始資料
SAS 可以讀取來自各種來源的資料,包括許多檔案格式。SAS 環境中使用的檔案格式將在下面討論。
- ASCII(文字)資料集
- 分隔資料
- Excel 資料
- 層次資料
讀取 ASCII(文字)資料集
這些檔案以文字格式包含資料。資料通常以空格分隔,但也可以使用 SAS 可以處理的不同型別的分隔符。讓我們考慮一個包含員工資料的 ASCII 檔案。我們使用 SAS 中提供的 **Infile** 語句讀取此檔案。
示例
在下面的示例中,我們從本地環境讀取名為 **emp_data.txt** 的資料檔案。
data TEMP; infile '/folders/myfolders/sasuser.v94/TutorialsPoint/emp_data.txt'; input empID empName $ Salary Dept $ DOJ date9. ; format DOJ date9.; run; PROC PRINT DATA = TEMP; RUN;
執行上述程式碼後,我們將獲得以下輸出。
讀取分隔資料
這些資料檔案中的列值以分隔符(如逗號或管道等)分隔。在這種情況下,我們在 **infile** 語句中使用 **dlm** 選項。
示例
在下面的示例中,我們從本地環境讀取名為 emp.csv 的資料檔案。
data TEMP; infile '/folders/myfolders/sasuser.v94/TutorialsPoint/emp.csv' dlm=","; input empID empName $ Salary Dept $ DOJ date9. ; format DOJ date9.; run; PROC PRINT DATA = TEMP; RUN;
執行上述程式碼後,我們將獲得以下輸出。
讀取 Excel 資料
SAS 可以使用匯入功能直接讀取 Excel 檔案。如 SAS 資料集章節所示,它可以處理各種檔案型別,包括 MS Excel。假設檔案 emp.xls 在 SAS 環境中本地可用。
示例
FILENAME REFFILE "/folders/myfolders/TutorialsPoint/emp.xls" TERMSTR = CR; PROC IMPORT DATAFILE = REFFILE DBMS = XLS OUT = WORK.IMPORT; GETNAMES = YES; RUN; PROC PRINT DATA = WORK.IMPORT RUN;
上述程式碼從 Excel 檔案讀取資料,並給出與上述兩種檔案型別相同的輸出。
讀取分層檔案
在這些檔案中,資料以分層格式存在。對於給定的觀測值,在其下方會有許多詳細記錄。詳細記錄的數量可能因觀測值而異。下面是分層檔案的示例。
在下面的檔案中,列出了每個部門下每個員工的詳細資訊。第一條記錄是標題記錄,其中提到了部門,接下來的幾條以 DTLS 開頭的記錄是詳細資訊記錄。
DEPT:IT DTLS:1:Rick:623 DTLS:3:Mike:611 DTLS:6:Tusar:578 DEPT:OPS DTLS:7:Pranab:632 DTLS:2:Dan:452 DEPT:HR DTLS:4:Ryan:487 DTLS:2:Siyona:452
示例
要讀取分層檔案,我們使用以下程式碼,其中我們使用 IF 子句識別標題記錄,並使用 do 迴圈處理詳細資訊記錄。
data employees(drop = Type); length Type $ 3 Department empID $ 3 empName $ 10 Empsal 3 ; retain Department; infile '/folders/myfolders/TutorialsPoint/empdtls.txt' dlm = ':'; input Type $ @; if Type = 'DEP' then input Department $; else do; input empID empName $ Empsal ; output; end; run; PROC PRINT DATA = employees; RUN;
執行上述程式碼後,我們將獲得以下輸出。
廣告