- 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 中,陣列的宣告使用以下語法:
ARRAY ARRAY-NAME(SUBSCRIPT) ($) VARIABLE-LIST ARRAY-VALUES
在上述語法中:
ARRAY 是宣告陣列的 SAS 關鍵字。
陣列名 是陣列的名稱,遵循與變數名相同的規則。
下標 是陣列將儲存的值的數量。
($) 是一個可選引數,僅當陣列將儲存字元值時才使用。
變數列表 是可選的變數列表,它們是陣列值的佔位符。
陣列值 是儲存在陣列中的實際值。它們可以在這裡宣告,也可以從檔案或資料行讀取。
陣列宣告示例
可以使用上述語法以多種方式宣告陣列。以下是示例。
# Declare an array of length 5 named AGE with values. ARRAY AGE[5] (12 18 5 62 44); # Declare an array of length 5 named COUNTRIES with values starting at index 0. ARRAY COUNTRIES(0:8) A B C D E F G H I; # Declare an array of length 5 named QUESTS which contain character values. ARRAY QUESTS(1:5) $ Q1-Q5; # Declare an array of required length as per the number of values supplied. ARRAY ANSWER(*) A1-A100;
訪問陣列值
可以使用print過程訪問儲存在陣列中的值,如下所示。在使用上述方法之一宣告之後,使用DATALINES語句提供資料。
DATA array_example; INPUT a1 $ a2 $ a3 $ a4 $ a5 $; ARRAY colours(5) $ a1-a5; mix = a1||'+'||a2; DATALINES; yello pink orange green blue ; RUN; PROC PRINT DATA = array_example; RUN;
執行上述程式碼時,將產生以下結果:
使用 OF 運算子
OF 運算子用於分析陣列中的資料,以對陣列的整行執行計算。在下面的示例中,我們應用每一行的值之和與平均值。
DATA array_example_OF; INPUT A1 A2 A3 A4; ARRAY A(4) A1-A4; A_SUM = SUM(OF A(*)); A_MEAN = MEAN(OF A(*)); A_MIN = MIN(OF A(*)); DATALINES; 21 4 52 11 96 25 42 6 ; RUN; PROC PRINT DATA = array_example_OF; RUN;
執行上述程式碼時,將產生以下結果:
使用 IN 運算子
也可以使用 IN 運算子訪問陣列中的值,該運算子檢查陣列行中是否存在某個值。在下面的示例中,我們檢查資料中是否存在顏色“Yellow”。此值區分大小寫。
DATA array_in_example; INPUT A1 $ A2 $ A3 $ A4 $; ARRAY COLOURS(4) A1-A4; IF 'yellow' IN COLOURS THEN available = 'Yes';ELSE available = 'No'; DATALINES; Orange pink violet yellow ; RUN; PROC PRINT DATA = array_in_example; RUN;
執行上述程式碼時,將產生以下結果:
廣告