iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
AI/ ML & Data

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

Day10:使用dplyr轉換資料-Vectorized Functions(2)

  • 分享至 

  • xImage
  •  

正文

今天要記錄的是累計彙總(Cumulative aggregates):

dplyr::cumall(): cumulative all() 搭配filter()提取資料到第一筆不符合的資料
dply::cumany(): cumulative any() 搭配filter()提取資料第一筆符合資料後的所有資料
dplyr::cummean(): cumulative mean() 累計平均值

範例:

library("dplyr")

 x <- c(1, 3, 5, 2, 2)

x小於5後皆為FALSE

cumall(x < 5)

https://ithelp.ithome.com.tw/upload/images/20240821/20168607HkbpORceds.png

x等於3後皆為TRUE

cumany(x == 3)

https://ithelp.ithome.com.tw/upload/images/20240821/20168607IuDapWGhkU.png

cummax(): cumulative max() 累計最大值
cummin(): cumulative min() 累計最小值
cumsum(): cumulative sum() 累計總和

x <- 1:10
y <- 10:1

#1到10的累計總和
cumsum(x)

#10到1的累計總和,利用order_by()進行排序(在此為y)
order_by(y, cumsum(x))

https://ithelp.ithome.com.tw/upload/images/20240821/20168607Q4wSMbLUA9.png

今天使用"Sean Lahman Baseball Database"資料集產生範例資料集

library(Lahman)

batting <- Lahman::Batting %>%
  as_tibble() %>%
  select(playerID, yearID, teamID, G, AB:H) %>%
  arrange(playerID, yearID, teamID) %>%
  semi_join(Lahman::AwardsPlayers, by = "playerID")

players <- batting %>% group_by(playerID)

https://ithelp.ithome.com.tw/upload/images/20240821/201686072gbLYm0TpZ.png

取得G大於150後的所有資料

filter(players, cumany(G > 150))

https://ithelp.ithome.com.tw/upload/images/20240821/20168607wXzmihgdJy.png

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

參考資料:

  1. Data transformation with dplyr :: Cheatsheet
  2. Window functions

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

尚未有邦友留言

立即登入留言