始める無料で始める

sapply が簡略化できない場合はどうする?

ここまでの例では、sapply()sapply() の出力をうまく簡略化してくれました。しかし、常に簡略化できるとは限りません。そのような場合、lapply() はどのように動作するのでしょうか?ここでは、数値ベクトルを受け取り、厳密にゼロ未満の値だけを返す関数 [ をあらかじめ用意しています。

この演習はコースの一部です

中級 R

コースを見る

演習の手順

  • below_zero()``temp[(https://www.rdocumentation.org/packages/base/functions/lapply) を使って sapply() を ] に適用し、結果を freezing_s に格納しましょう。
  • below_zero()``temp[(https://www.rdocumentation.org/packages/base/functions/lapply) を使って lapply() を ] に適用し、結果のリストを変数 freezing_l に保存しましょう。
  • freezing_s``freezing_l[(https://www.rdocumentation.org/packages/base/functions/identical) 関数を使って、identical() と ] を比較しましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# temp is already prepared for you in the workspace

# Definition of below_zero()
below_zero <- function(x) {
  return(x[x < 0])
}

# Apply below_zero over temp using sapply(): freezing_s


# Apply below_zero over temp using lapply(): freezing_l


# Are freezing_s and freezing_l identical?
コードを編集して実行