iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
AI/ ML & Data

資料科學的小筆記系列 第 12

Day12:使用dplyr轉換資料-Vectorized Functions(4)

  • 分享至 

  • xImage
  •  

正文

今天要紀錄的是mutate()可以搭配的數學運算:

  1. +, -, /, ^, %/%, %%: 算數運算
  2. log(), log2(), log10(): 對數運算
  3. <, <=, >, >=, !=, ==: 邏輯比較
  4. dplyr::between(x, left, right): 介於left及right的數值
  5. dplyr::near(): 比較浮點數的較安全的方法(相較於==)

演練算數運算
計算 1.每加侖英里的倒數(1 / mpg) 2. 汽缸數乘以馬力(cyl * hp) 3. 馬力的平方(hp^2)

mtcars %>%
  mutate(
    mpg_inverse = 1 / mpg,        # 每加侖英里的倒數
    cyl_hp = cyl * hp,            # 汽缸數乘以馬力
    hp_square = hp ^ 2            # 馬力的平方
  )

https://ithelp.ithome.com.tw/upload/images/20240823/20168607P6BFA2GXU0.png

演練對數運算
計算馬力的對數、二進制對數以及常用對數

mtcars %>%
  mutate(
    log_hp = log(hp),             # 馬力的自然對數
    log2_hp = log2(hp),           # 馬力的二進制對數
    log10_hp = log10(hp)          # 馬力的常用對數
  )

https://ithelp.ithome.com.tw/upload/images/20240823/20168607M2teJPmDDS.png

演練邏輯比較
新增一個變數來檢查汽車的重量是否大於3.0,以及一個變數來檢查引擎排量是否等於160

mtcars %>%
  mutate(
    wt_greater_3 = wt > 3.0,      # 檢查重量是否大於3.0
    disp_equal_160 = disp == 160  # 檢查引擎排量是否等於160
  )

https://ithelp.ithome.com.tw/upload/images/20240823/20168607on3kfdnpLI.png

範圍比較與浮點數比較
檢查馬力是否在100到200之間,以及檢查每加侖英里是否接近21,允許誤差0.1

mtcars <- mtcars %>%
  mutate(
    hp_in_range = between(hp, 100, 200),     # 檢查馬力是否在100到200之間
    mpg_near_21 = near(mpg, 21, tol = 0.1)   # 檢查每加侖英里是否接近21,允許誤差0.1
  )

https://ithelp.ithome.com.tw/upload/images/20240823/20168607FsXgNHxuLF.png

今天的小筆記就先到這邊,大家明天見~~

參考資料:

  1. Data transformation with dplyr :: Cheatsheet

上一篇
Day11:使用dplyr轉換資料-Vectorized Functions(3)
下一篇
Day13:使用dplyr轉換資料-Vectorized Functions(5)
系列文
資料科學的小筆記29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言