R でscale() 関数を使用する方法 (例付き)
R のscale()関数は、ベクトル、行列、またはデータ フレーム内の値をスケールするために使用できます。
この関数は次の基本構文を使用します。
scale(x, center = TRUE , scale = TRUE )
金:
- x : スケールするオブジェクトの名前
- center : スケーリング時に平均を減算するかどうか。デフォルトはTRUEです。
- scale : スケーリング時に標準偏差で割るかどうか。デフォルトはTRUEです。
この関数は、次の式を使用してスケーリングされた値を計算します。
スケーリングされたx = (元のx – x̄) / s
金:
- 元のx : 元の x 値
- x̄ : サンプルの意味
- s : サンプルの標準偏差
これはデータ正規化とも呼ばれ、元の各値をZ スコアに単純に変換します。
次の例は、この関数を実際に使用する方法を示しています。
例 1: ベクトル内のスケール値
R に次の値のベクトルがあるとします。
#define vector of values x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9) #view mean and standard deviation of values mean(x) [1] 5 sd(x) [1] 2.738613
次のコードは、 scale()関数を使用してベクトル値をスケーリングする方法を示しています。
#scale the values of x x_scaled <- scale(x) #view scaled values x_scaled [,1] [1,] -1.4605935 [2,] -1.0954451 [3,] -0.7302967 [4,] -0.3651484 [5,] 0.0000000 [6,] 0.3651484 [7,] 0.7302967 [8,] 1.0954451 [9,] 1.4605935
各スケール値の計算方法は次のとおりです。
- 値 1: (1 – 5) / 2.738613 = -1.46
- 値 2: (2 – 5) / 2.738613 = -1.09
- 値 3: (3 – 5) / 2.738613 = -0.73
等々。
scale=FALSEを指定すると、関数はスケーリング時に標準偏差で除算しないことに注意してください。
#scale the values of x but don't divide by standard deviation x_scaled <- scale(x, scale = FALSE ) #view scaled values x_scaled [,1] [1,] -4 [2,] -3 [3,] -2 [4,] -1 [5,] 0 [6,] 1 [7,] 2 [8,] 3 [9,] 4
各スケール値の計算方法は次のとおりです。
- 値 1: 1 – 5 = -4
- 値 2: 2 – 5 = -3
- 値 3: 3 – 5 = -2
等々。
例 2: データ フレーム内の列値をスケールする
ほとんどの場合、各列の平均が 0、標準偏差が 1 になるようにデータ フレーム内の複数の列の値をスケーリングする場合は、scale() 関数を使用します。
たとえば、R に次のデータ フレームがあるとします。
#create data frame df <- data. frame (x=c(1, 2, 3, 4, 5, 6, 7, 8, 9), y=c(10, 20, 30, 40, 50, 60, 70, 80, 90)) #view data frame df xy 1 1 10 2 2 20 3 3 30 4 4 40 5 5 50 6 6 60 7 7 70 8 8 80 9 9 90
y 変数の値の範囲は、x 変数の値の範囲よりもはるかに大きいことに注意してください。
scale()関数を使用して、x と y のスケーリングされた値が両方とも平均 0、標準偏差 1 になるように 2 つの列の値をスケーリングできます。
#scale values in each column of data frame df_scaled <- scale(df) #view scaled data frame df_scaled xy [1,] -1.4605935 -1.4605935 [2,] -1.0954451 -1.0954451 [3,] -0.7302967 -0.7302967 [4,] -0.3651484 -0.3651484 [5,] 0.0000000 0.0000000 [6,] 0.3651484 0.3651484 [7,] 0.7302967 0.7302967 [8,] 1.0954451 1.0954451 [9,] 1.4605935 1.4605935
x 列と y 列の平均は 0、標準偏差は 1 になりました。
追加リソース
次のチュートリアルでは、R で他の一般的な操作を実行する方法について説明します。