首页 > 编程知识 正文

水彩画的基本技法,国画的基本技法

时间:2023-05-05 08:08:15 阅读:278473 作者:769

摘要

本文簡介如何使用 dplyr 與 base R 語法進行六個基本資料處理技法,並支持初學者先從 dplyr 開始做基本資料處理技法這個論點。

論點起源

在 Tidyverse:R 語言學習之旅的新起點一文中我們提到過新興的 R 語言學習路徑可以從 tidyverse 這個套件起始,而非傳統的 Base R;這個論點其實源自於 DataCamp 現任的首席資料科學家 David Robinson,他的前一份工作是在 Stack Overflow 擔任資料科學家。

不過 tidyverse 是一個非常龐大的生態系,它有點像是懶人包,將未來可能會用到的套件都囊括進去,這點必定是極簡風格使用者的忌諱;不過常用套件:magrittr、dplyr 或 ggplot2 等都是 tidyverse 的核心成員,中高階使用者可以選擇不要安裝整個 tidyverse,只挑選安裝會派上用場的元件。

試試水溫

對於初學者,可以在安裝 tidyverse 之前,先嘗試看看 dplyr 這個 tidyverse 的敲門磚;假如 ggplot2 被譽為繪圖的文法(grammar of graphics),那麼 dplyr 就是資料處理的文法(grammar of data manipulation),如果喜歡,就可以接著走新興路徑,接著試 ggplot2;假如不喜歡,就改走 Base R 的傳統路徑。

那又該怎麼判斷自己是否會喜歡 dplyr 呢?在本篇文章中,我們會簡介 dplyr 的六個基本資料處理技法:篩選、選擇、新增、排序、摘要與分組,同時交互參照使用 base R 的寫法該怎麼實踐,初學者應當能夠在執行過後得到一個較喜歡的做法,又或者直接採納本文的觀點。

前置作業

需要安裝載入 dplyr,然後手動創建一個資料框 strawhat。

install.packages("dplyr")library(dplyr)strawhat <- data.frame( name = c("Monkey D. Luffy", "Roronoa Zoro", "Nami", "Usopp", "Vinsmoke Sanji", "Tony Tony Chopper", "Nico Robin", "Franky", "Brook"), gender = c("Male", "Male", "Female", "Male", "Male", "Male", "Female", "Male", "Male"), age = c(19, 21, 20, 19, 21, 17, 30, 36, 90), height = c(174, 181, 170, 176, 180, 90, 188, 240, 277), stringsAsFactors = FALSE)View(strawhat)

One Piece, Google Search

篩選女性船員

dplyr 使用 filter 函數、base R 使用原生中括號。

# dplyr::filter() ---------strawhat %>% filter(gender == "Female")# base R ------------------strawhat[strawhat$gender == "Female", ]

選擇姓名與年紀

dplyr 使用 select 函數、base R 使用原生中括號。

# dplyr::select() ---------strawhat %>% select(name, age)# base R ------------------strawhat[, c("name", "age")]

新增兩年前的年紀

dplyr 使用 mutate 函數、base R 直接將衍生變數的算式指派給新變數。

# dplyr::mutate() ---------strawhat %>% mutate(age_before = age - 2)# base R ------------------strawhat$age_before <- strawhat$age - 2strawhat

以身高遞減排序

dplyr 使用 arrange 函數、base R 則以 order 函數取得觀測值順序後以原生中括號擺放位置。

# dplyr::arrange() --------strawhat %>% arrange(desc(height))# base R ------------------strawhat[rev(order(strawhat$height)), ]

摘要平均年齡

dplyr 使用 summarise 函數、base R 直接對變數計算。

# dplyr::summarise() ------strawhat %>% summarise(avg_age = mean(age))# base R ------------------avg_age <- mean(strawhat$age)avg_age

分性別摘要平均年齡

dplyr 使用 group_by 函數、base R 則使用 aggregate 函數。

# dplyr::group_by() -------strawhat %>% group_by(gender) %>% summarise(avg_age = mean(age))# base R ------------------aggregate(strawhat$age, by = list(strawhat$gender), FUN = mean)

本文觀點

快速操作過 dplyr 與 Base R 語法後,不知道讀者是否已經心裡有譜?若還是拿不定主意,本文觀點是篩選、選擇、新增與摘要這四個技法上,dplyr 與 base R 算得上無差異,但是在排序及分組上,dplyr 的好用與直觀程度都勝過 base R,總結來說,我們支持初學者從 dplyr 做基本資料處理技法開始。

 

转载:https://medium.com/datainpoint/dplyr-%E5%85%AD%E5%80%8B%E5%9F%BA%E6%9C%AC%E8%B3%87%E6%96%99%E8%99%95%E7%90%86%E6%8A%80%E6%B3%95-d6cf16606fd0?fbclid=IwAR3yn4-31o6R0X1pSNlhSgGwOvMudjTDOKHlJT_1pt33Y6wFAKacQWTNrg4

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。