close
進行資料分析前,資料正規化經常是一個必要的步驟。此時若能留意R 的行導向特性,當可
事半功倍。例如:欲對下列三行變數做最大-最小正規化
> (x <- matrix(1:24, 8, 3))
首先以先前提過的apply 函數求出各行最小值,
> (y <- apply(x, 2, min))
再求出各行最大值,
> (z <- apply(x, 2, max))
y 與z 看起來像是列向量,實際上它們是行向量!因此x 須先轉置(transpose),才能將各行剪
去其最小值。
> t(x) - y
讀者可試著輸入x 未轉置的指令,結果是x 減去[1 9 17 1 9 17 1 9]T,因為y 的長度不及
8,所以R 會將較短向量y 中元素自動重複,直到其長度為8 為止。
> x - y
我們所要的正規化結果是將(t(x) - y)再除以各行最大值與最小值的差(z – y),
> (t(x) - y)/(z - y)
再將它轉置就回到原始資料8 列3 行的形式了!
> t((t(x) - y)/(z - y))
撰文者: |
文章標籤
全站熱搜