iT邦幫忙

2024 iThome 鐵人賽

DAY 4
1
AI/ ML & Data

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

Day4:使用dplyr轉換資料-Manipulate Cases (1)

  • 分享至 

  • xImage
  •  

正文

今天要來紀錄的是dplyr的操縱函式,先針對提取案例(Extract Cases)進行練習,以下函式會回傳一組資料列作為新的資料表:

  1. filter(.data, ..., .preserve = FALSE): 取出符合邏輯條件的資料列。
    可以使用的邏輯及布林運算子:
    1. ==
    2. <
    3. <=
    4. is.na()
    5. %in%
    6. |
    7. xor()
    8. !=
    9. >
    10. >=
    11. !is.na()
    12. !
    13. &
    

篩選mtcars資料集中mpg大於20的資料列

mtcars |> filter(mpg > 20)

https://ithelp.ithome.com.tw/upload/images/20240815/20168607QwjgUHFHeF.png

  1. distinct(.data, ..., .keep_all = FALSE):去除有重複值的資料列。

取出mtcars資料集的gear不重複資料列

mtcars |> distinct(gear)

https://ithelp.ithome.com.tw/upload/images/20240815/20168607xwUZBji1I4.png

  1. slice(.data, ...,, .preserve = FALSE):取出特定位置的資料列。

取出mtcars資料集的第10列到第15列

mtcars |> slice(10:15)

https://ithelp.ithome.com.tw/upload/images/20240815/20168607Iws8kkPZn8.png

  1. slice_sample(.data, ..., n, prop, weight_by = NULL, replace = FALSE): 隨機取出資料列。使用n設定要取出的資料列數量,或是使用prop以資料集比例的方式取出的資料列數量。

隨機取出mtcars資料表5個資料列

mtcars |> slice_sample(n = 5, replace = TRUE)

https://ithelp.ithome.com.tw/upload/images/20240815/20168607hiVrDJvUhY.png

隨機取出mtcars資料表10%比例數量的資料列

mtcars |> slice_sample(prop = 0.1, replace = TRUE)

https://ithelp.ithome.com.tw/upload/images/20240815/20168607ZoZahl1uqn.png

  1. slice_min(.data, order_by, ..., n, prop, with_ties = TRUE): 取出有最小值的資料列。同理,slice_max()為取出有最大值的資料列。可以n個資料列(最小的前n名),或用prop取出比例的資料量,與slice_sample()的參數相同意義。

取mtcars資料集mpg前25%數量最小的資料列

mtcars |> slice_min(mpg, prop = 0.25)

https://ithelp.ithome.com.tw/upload/images/20240815/20168607aQ1iiC5zjO.png

  1. slice_head(.data, ..., n, prop):取出前n列的資料列,或使用prop以比例取出。同理,slice_tail()為取出後n列的資料列。

取mtcars資料集前5列的資料列

mtcars |> slice_head(n = 5)

https://ithelp.ithome.com.tw/upload/images/20240815/20168607RVlNubiM8J.png

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

參考資料:Data transformation with dplyr :: Cheatsheet


上一篇
Day3: 使用dplyr轉換資料-Group Cases
下一篇
Day5:使用dplyr轉換資料-Manipulate Cases (2)
系列文
資料科學的小筆記5
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言