小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

數(shù)據(jù)清洗中的10個高頻操作!

 紫燕玥玥 2024-12-23

數(shù)據(jù)科學是一門激動人心的學科,它可以將原始數(shù)據(jù)轉(zhuǎn)化為認識、見解和知識。本書目的是幫你學習使用 R 語言中最重要的數(shù)據(jù)科學工具。讀完本書后,你將掌握 R 語言的精華,并能夠熟練使用多種工具來解決各種數(shù)據(jù)科學難題?!禦 數(shù)據(jù)科學》

圖片

說實話,我最開始學習 R 語言是從《R 語言實戰(zhàn)》開始的。這本書從變量類型、數(shù)據(jù)結(jié)構(gòu)等基本概念切入,再介紹統(tǒng)計分析方法,最后是高階技能拓展。這種方式是很考驗人的,需要不斷地練習代碼,但又不知道怎么用。與《R 語言實戰(zhàn)》不同,《R 數(shù)據(jù)科學》,讓我們在最短時間內(nèi)學會數(shù)據(jù)處理與可視化,其理念就是不談向量、矩陣、數(shù)據(jù)框、因子、流程控制等概念,直接從數(shù)據(jù)地實操入手,盡可能在最短時間內(nèi)學會數(shù)據(jù)處理與可視化。

圖片

在數(shù)據(jù)科學中,首先是進行數(shù)據(jù)導(dǎo)入和整理;然后通過一個反復(fù)迭代的過程來理解數(shù)據(jù),包括轉(zhuǎn)換、可視化和建模;最后,將處理結(jié)果有效地傳達給其他人。一旦你導(dǎo)入了數(shù)據(jù),最好對其進行整理。整潔的數(shù)據(jù)意味著,每一列都是一個變量,每一行都是一個觀察值。

一旦有了整潔數(shù)據(jù),知識生成的兩個主要引擎是可視化和建模。數(shù)據(jù)科學的最后是溝通,這是任何數(shù)據(jù)分析項目中絕對關(guān)鍵的一部分。如果你無法將結(jié)果傳達給其他人,那么你對模型和可視化圖表的理解再好也沒有用。

圖片

在所有這些工具周圍是編程。編程是一種橫跨工具,在數(shù)據(jù)科學項目的幾乎每個部分都會使用。這里有一個大致的80/20規(guī)則:可以使用本書中學到的工具解決大約80%的項目,但需要其他工具來解決剩下的20%。其中,tidyverse包可提供非常優(yōu)秀的數(shù)據(jù)清理、整合和可視化的“一站式服務(wù)”。

圖片

tidyverse出自 R 大神Hadley Wickham之手,是他將自己所寫的包整理成了一整套數(shù)據(jù)處理的方法,包括ggplot2,dplyr,tidyr,readr,purrr,tibble,stringr, forcats。這是一套數(shù)據(jù)分析的邏輯和方法,甚至是一種思想!

########--------數(shù)據(jù)清洗,10個高頻操作--------########
姓名 <- c('張三', '李四', '王五', '趙六')
日期 <- c('2024-10-08', '2024-10-28', '2024-12-01', '2023-10-26')
城市 <- c('北京', '上海', '廣州', '深圳')
收入 <- c('8000', '6000', '5000', '10000')
年齡 <- c(32, 45, NA, 39)
性別 <- c('M', 'F', 'F', 'M')

data <- data.frame(姓名, 日期, 城市, 收入, 年齡,性別, stringsAsFactors=FALSE)

library(tidyverse)
## Warning: 程序包'ggplot2'是用R版本4.4.2 來建造的
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ? dplyr 1.1.4 ? readr 2.1.5
## ? forcats 1.0.0 ? stringr 1.5.1
## ? ggplot2 3.5.1 ? tibble 3.2.1
## ? lubridate 1.9.3 ? tidyr 1.3.1
## ? purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ? dplyr::filter() masks stats::filter()
## ? dplyr::lag() masks stats::lag()
## ? Use the conflicted package (<http://conflicted./>) to force all conflicts to become errors
library(janitor)
##
## 載入程序包:'janitor'
##
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
library(lubridate)

# 重命名rename
data <- data %>%
rename(name = 姓名, date = 日期, country = 城市, income = 收入, age = 年齡, gender = 性別)

data <- data %>% clean_names()

# 數(shù)據(jù)格式轉(zhuǎn)換
data <- data %>%
mutate(income = as.numeric(income),
date = as.Date(date))

# 處理缺失值
data <- data %>%
mutate(age = replace_na(age, mean(age, na.rm = TRUE)))

# 增加新列,mutate
# options(knitr.duplicate.label = 'allow')
data <- data %>%
mutate(data, score = income*0.006 + age*0.4)

# 妙用
data <- data %>%
mutate(category = case_when(
income < 6000 ~ 'low',
income >= 6000 & income < 8000 ~ 'middle',
income >= 8000 ~ 'high')
)

# 排序,arrange
data <- data %>%
arrange(gender,score)

data <- data %>%
arrange(gender,desc(score))

# 選取特定列,select
data2 <- data %>%
select(name,income,age,score)

# 篩選特定數(shù)據(jù),filter
data2 <- data %>%
filter(gender == 'M' & score > 60)

(data2 <- filter(data, gender == 'M' & income > 6000))
## name date country income age gender score category
## 1 趙六 2023-10-26 深圳 10000 39 M 75.6 high
## 2 張三 2024-10-08 北京 8000 32 M 60.8 high
# 數(shù)據(jù)合并,merge
data_merge <- data %>%
left_join(data2, by = 'name')

# 刪除含有缺失值的行
data_merge <- data_merge %>%
drop_na()
以上就是R語言數(shù)據(jù)清洗的10個高頻操作。這些技巧涵蓋了數(shù)據(jù)清洗過程中的多個方面,主要來自tidyverse包。希望這些技巧能夠幫助你更好地處理數(shù)據(jù),提高工作效率。記住,數(shù)據(jù)清洗是一個需要不斷練習和積累經(jīng)驗的過程。請不要害怕嘗試新的方法,也不要忘記查閱文檔和尋求幫助(摘自公眾號BioGenius班,特別好的總結(jié))。
參考資料:https://mp.weixin.qq.com/s/AiMpK46l5V0Eexp8kVdK7g

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多