R で列名を反復処理する方法 (例付き)


多くの場合、R でデータ フレームの列名を反復処理し、各列に対して特定の操作を実行したい場合があります。これを行うには、次の 2 つの一般的な方法があります。

方法 1: For ループを使用する

 for (i in colnames(df)){
   some operation
}

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

 sapply(df, some operation )

このチュートリアルでは、これらの各メソッドを実際に使用する方法の例を示します。

方法 1: For ループを使用する

次のコードは、 for ループを使用してデータ フレームの列名をループし、各列の平均値を表示する方法を示しています。

 #create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 6, 8),
                 var4=c(1, 1, 2, 8, 9))

#view data frame
df

  var1 var2 var3 var4
1 1 7 3 1
2 3 7 3 1
3 3 8 6 2
4 4 3 6 8
5 5 2 8 9

#loop through each column and print mean of column
for (i in colnames(df)){
    print( mean (df[[i]]))
}

[1] 3.2
[1] 5.4
[1] 5.2
[1] 4.2

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

次のコードは、 sapply()を使用してデータ フレームの列名を反復処理し、各列の平均値を表示する方法を示しています。

 #create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 6, 8),
                 var4=c(1, 1, 2, 8, 9))

#view data frame
df

  var1 var2 var3 var4
1 1 7 3 1
2 3 7 3 1
3 3 8 6 2
4 4 3 6 8
5 5 2 8 9

#loop through each column and print mean of column
sapply(df, mean )

var1 var2 var3 var4 
 3.2 5.4 5.2 4.2

どちらのメソッドも同じ結果を返すことに注意してください。

関連: R の apply()、lapply()、sapply()、tapply() のガイド

コメントを追加する

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