始める無料で始める

列の変換(ミューテーション)

データセットが最初から完全に整った状態で手に入ることは、実はほとんどありません。値を修正したり、既存のデータをもとに新しい列を作成したりする作業は、よく発生します。列を変更・追加するこの処理は、dplyr の用語ではミューテーションと呼ばれ、mutate() 関数を使って行います。この関数はティブルと名前付き引数を受け取り、引数名が変更または追加する列名、引数の値がその更新方法を表す式になります。たとえば、列 xy を持つティブルに対して、次のコードは 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
  ___
コードを編集して実行