始める無料で始める

possibly() で値を変換する

たとえば、sw_people にある Star Wars のキャラクターの身長を、センチメートルからフィートに変換したいとします。すでに一部の身長データが欠損していることはわかっているので、possibly() を使って変換に失敗した値を NA にします。既存の数値については、0.0328084 を掛けてセンチメートルからフィートへ変換します。

データの感触をつかむために、まずコンソールで height_cm を出力し、センチメートルでの身長を確認してください。

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

purrr で学ぶ関数型プログラミング入門

コースを見る

演習の手順

  • height_cm オブジェクトを、倍精度ベクトルを返す map_*() 関数にパイプします。
  • height_cm の各要素をフィートに変換します(0.0328084 を掛けます)。
  • すべての要素が数値とは限らないため、possibly() を使って変換に失敗する箇所を NA_real_ に置き換えます。

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

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

# Create a piped workflow that returns double vectors
___ %>%  
  map___(possibly(function(___){
  # Convert centimeters to feet
    ___ * 0.0328084
}, ___)) 
コードを編集して実行