apply関数ファミリーの概要


apply関数
  • は、配列のある次元に沿ってデータを処理する.たとえば、行列の行または列に関数を使用します.for/whileサイクルの効率と似ていますが、一言で
  • を達成できます.
  • パラメータ:apply(配列、次元、関数/関数名)
  • x<-matrix(1:16,4,4)
    apply(x,2,mean)
    
    [1]  2.5  6.5 10.5 14.5
    x<-matrix(rnorm(100),10,10)
    apply(x,1,quantile,probs=c(0.25,0.75))

    lapply関数
  • は、リスト内の各要素
  • を循環処理することができる.
  • パラメータ:lapply(リスト、関数/関数名、その他)
  • は常にリスト
  • を返す
    x<-list(a=1:10,b=c(11,21,31,41,51))
    lapply(x,mean)              # x      ,R          
    
    $a
    [1] 5.5
    
    $b
    [1] 31

    sapply関数
  • 結果リスト要素の長さはいずれも1であり、戻りベクトル
  • である.
  • の結果、リスト要素の長さは同じで1より大きく、戻り行列(長さが異なると簡略化できない、すなわちリストである)
  • が返される.
    x<-list(a=1:10,b=c(11,21,31,41,51))
    sapply(x,mean)
    
      a      b
    5.5   31.0

    mapply関数
  • lapplyのマルチバージョン
  • パラメータ:mapply(関数/関数名、データ、関数関連パラメータ)
  • mapply(rep,1:4,4:1)
    
    [[1]]
    [1] 1 1 1 1
    [[2]]
    [1] 2 2 2
    [[3]]
    [1] 3 3
    [[4]]
    [1] 4

    tapply関数
  • ベクトルのサブセットを操作する
  • .
  • パラメータ:tapply(ベクトル、因子/因子リスト、関数/関数名)
  • x<-c(rnorm(5),runif(5),rnorm(5,1))
    f<-gl(3,5)
    tapply(x,f,mean)
    
             1          2          3 
    -0.4793135  0.6472551  0.8236216