變更欄位(Mutating columns)
也許會讓你驚訝,不是每個資料集一開始都乾淨無瑕!你常常需要修正數值,或從既有資料衍生出新的欄位。在 dplyr 的術語裡,變更或新增欄位稱為「mutation」,可用 mutate() 來完成。這個函式會接收一個 tibble,以及用來更新欄位的具名引數。每個具名引數的名稱就是要變更或新增的欄位名,而其值則是說明如何更新的運算式。例如,給定一個包含 x 與 y 欄位的 tibble,以下程式碼會更新 x,並建立新欄位 z。
a_tibble %>%
mutate(
x = x + y,
z = log(x)
)
如果你還沒注意到,基礎 R 的函式無法用在 Spark 的 tibble 上;因此你不能用 within() 或 transform() 來達成這個目的。
本練習屬於課程
使用 R 的 sparklyr:Spark 入門
練習說明
我們已為你建立 spark_conn 這個 Spark 連線。連到 Spark 中曲目後設資料的 tibble 也已預先定義為 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
___