トップ 一覧 検索 ヘルプ RSS ログイン 印刷

apply()の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!各行または各列に対して関数を適用する

データフレームまたは行列の各行ないしは各列に対して関数を適用する場合、

 sum(df$x1)

とすることも可能だが、関数が複雑な場合には少し厄介だ。

そこで、apply()関数を使って処理をする。

 apply(df, 1, sum)

とすれば、データフレーム(または行列)dfの行(1)にsum関数を適用したことになる。

なお、列に適用したい場合には、2を選択する。

!多次元でも使えることがわかった

r-wakalangでKDさんに教わった。

 > set.seed(1)
 > x <-array(sample(1:100, 36), dim = c(3, 4, 3))
 > x
 , , 1
     [,1] [,2] [,3] [,4]
 [1,]   68   34   14   51
 [2,]   39   87   82   85
 [3,]    1   43   59   21
 , , 2
     [,1] [,2] [,3] [,4]
 [1,]   54   73   83   84
 [2,]   74   79   97   33
 [3,]    7   37   44   35
 , , 3
     [,1] [,2] [,3] [,4]
 [1,]   70   38   72   69
 [2,]   96   20   80   25
 [3,]   42   28   40   99
 > apply(x, 1:2, max)
     [,1] [,2] [,3] [,4]
 [1,]   70   73   83   84
 [2,]   96   87   97   85
 [3,]   42   43   59   99
!参考

 tidyr::mutate()