1

Plot titles in R using sapply()からのローランドの提案に基づいて、次のループを作成して、データセットで選択したすべての変数からボックスプロットを作成しました。

all.box=function(x) {
  for (i in seq_along(x)) {
    boxplot(x[,i], main = names(x)[i])
  }
}

グラフを提供するという点で、うまく機能します。誰かがループを作成して何らかの出力を返す方法を教えてもらえますか? boxplot からの $out を使用して、計算された外れ値の数を確認できますか?

どうもありがとう!

4

2 に答える 2

3

lapplyの副作用を避けるには、ここで使用することをお勧めしforます。

all.box=function(x) {
  res <- lapply(seq_along(x),function(i){
     boxplot(x[,i], main = names(x)[i])$out
  })
  res
}

PS: を引き続き使用できますがfor、ループ内の結果としてリストを追加するか、boxplot を呼び出す前に出力オブジェクトにメモリを割り当てる必要があります。xxapplyなのでここではファミリー機能を使ったほうが簡単だと思います。

于 2013-05-25T08:39:23.957 に答える
1

ループから何かを返したい場合for、それがリストでない場合は、返されるオブジェクトを事前に割り当てることが非常に重要です。そうforしないと、多くの反復を伴うループが遅くなります。特にRインフェルノとサークル2を読むことをお勧めします。

all.box=function(x) {
  result <- list()
  for (i in seq_along(x)) {
    result[[i]] <- boxplot(x[,i], main = names(x)[i])$out
  }
  result
}
于 2013-05-25T08:46:44.740 に答える