列の変換(ミューテーション)
データセットが最初から完全に整った状態で手に入ることは、実はほとんどありません。値を修正したり、既存のデータをもとに新しい列を作成したりする作業は、よく発生します。列を変更・追加するこの処理は、dplyr の用語ではミューテーションと呼ばれ、mutate() 関数を使って行います。この関数はティブルと名前付き引数を受け取り、引数名が変更または追加する列名、引数の値がその更新方法を表す式になります。たとえば、列 x と y を持つティブルに対して、次のコードは x を更新し、新しい列 z を作成します。
a_tibble %>%
mutate(
x = x + y,
z = log(x)
)
なお、ベース R の関数は Spark のティブルには使えません。そのため、within() や transform() はこの目的には利用できません。
この演習はコースの一部です
sparklyr を使った Spark 入門(R)
演習の手順
Spark への接続は spark_conn として作成済みです。Spark に格納されたトラックのメタデータに紐付けられたティブルは、track_metadata_tbl としてあらかじめ定義されています。
titleフィールドとdurationフィールドを選択します。なお、duration の単位は秒です。- その結果を
mutate()にパイプで渡し、トラックの再生時間を分単位で表す新しいフィールドduration_minutesを作成します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# track_metadata_tbl has been pre-defined
track_metadata_tbl
# Manipulate the track metadata
track_metadata_tbl %>%
# Select columns
___ %>%
# Mutate columns
___