R でscale() 関数を使用する方法 (例付き)


R のscale()関数は、ベクトル、行列、またはデータ フレーム内の値をスケールするために使用できます。

この関数は次の基本構文を使用します。

 scale(x, center = TRUE , scale = TRUE )

金:

  • x : スケールするオブジェクトの名前
  • center : スケーリング時に平均を減算するかどうか。デフォルトはTRUEです。
  • scale : スケーリング時に標準偏差で割るかどうか。デフォルトはTRUEです。

この関数は、次の式を使用してスケーリングされた値を計算します。

スケーリングされたx = (元のx – x̄) / s

金:

  • 元の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 で他の一般的な操作を実行する方法について説明します。

R でデータを正規化する方法
R でデータを標準化する方法
R で列の平均を計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です