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
}, ___))