R で記述統計を計算する方法 (例付き)


記述統計は、一連のデータを説明する値です。

これらは、データセットの中心がどこにあるのか、またデータセット内の値の分布を理解するのに役立ちます。

R で記述統計を計算するために使用できる関数は 2 つあります。

方法 1: summary() 関数を使用する

 summary(my_data)

summary()関数は、R のデータ フレーム内の各変数に対して次の値を計算します。

  • 最小
  • 第 1 四分位
  • 中央値
  • 平均
  • 第 3 四分位
  • 最大

方法 2: sapply() 関数を使用する

 sapply(my_data, sd, na. rm = TRUE )

sapply()関数は、データ フレーム内の各変数についてsummary()関数によって計算されるもの以外の記述統計を計算するために使用できます。

たとえば、上記のsapply()関数は、データ フレーム内の各変数の標準偏差を計算します。

次の例は、これら 2 つの関数を使用して、R のデータ フレーム内の変数の記述統計を計算する方法を示しています。

例: R での記述統計の計算

R に 3 つの変数を含む次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (x=c(1, 4, 4, 5, 6, 7, 10, 12),
                 y=c(2, 2, 3, 3, 4, 5, 11, 11),
                 z=c(8, 9, 9, 9, 10, 13, 15, 17))

#view data frame
df

   X Y Z
1 1 2 8
2 4 2 9
3 4 3 9
4 5 3 9
5 6 4 10
6 7 5 13
7 10 11 15
8 12 11 17

summary()関数を使用して、変数ごとにさまざまな記述統計を計算できます。

 #calculate descriptive statistics for each variable
summary(df)

       xyz Min. : 1,000 Min. : 2,000 Min. : 8.00  
 1st Qu.: 4,000 1st Qu.: 2,750 1st Qu.: 9.00  
 Median: 5,500 Median: 3,500 Median: 9.50  
 Mean: 6.125 Mean: 5.125 Mean: 11.25  
 3rd Qu.: 7,750 3rd Qu.: 6,500 3rd Qu.: 13.50  
 Max. :12,000 Max. :11,000 Max. :17.00

括弧を使用して、データ フレーム内の特定の変数の記述統計のみを計算することもできます。

 #calculate descriptive statistics for 'x' and 'z' only
summary(df[, c(' x ', ' z ')])

       xz Min. : 1,000 Min. : 8.00  
 1st Qu.: 4.000 1st Qu.: 9.00  
 Median: 5.500 Median: 9.50  
 Mean: 6.125 Mean: 11.25  
 3rd Qu.: 7.750 3rd Qu.: 13.50  
 Max. :12,000 Max. :17.00 

sapply()関数を使用して、各変数の特定の記述統計を計算することもできます。

たとえば、次のコードは、各変数の標準偏差を計算する方法を示しています。

 #calculate standard deviation for each variable
sapply(df, sd, na. rm = TRUE )

       X Y Z
3.522884 3.758324 3.327376

sapply()function()を使用して記述統計を計算することもできます。

たとえば、次のコードは、各変数の範囲を計算する方法を示しています。

 #calculate range for each variable
sapply(df, function(df) max(df, na. rm = TRUE )-min(df, na. rm = TRUE ))

 X Y Z
11 9 9

最後に、記述統計を計算する複雑な関数を作成し、この関数をsapply()関数とともに使用できます。

たとえば、次のコードは、データ フレーム内の各変数のモードを計算する方法を示しています。

 #define function that calculates mode
find_mode <- function (x) {
  u <- unique(x)
  tab <- tabulate(match(x, u))
  u[tab == max(tab)]
}

#calculate mode for each variable
sapply(df, find_mode)

$x
[1] 4

$y
[1] 2 3 11

$z
[1] 9

結果から次のことがわかります。

  • 変数 x の最頻値は4です。
  • y 変数のモードは23 、および11です (これらの値はそれぞれ最も頻繁に現れるため)
  • 変数 z の最頻値は9です。

summary()関数とsapply()関数を使用すると、データ フレーム内の各変数について必要な記述統計を計算できます。

追加リソース

次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。

Rで集計表を作成する方法
R で四分位範囲を見つける方法
R で外れ値を削除する方法

コメントを追加する

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