1.數(shù)據(jù)處理
1.1 數(shù)據(jù)導入
將數(shù)據(jù)導入R畜挥。這實際上就是讀取保存在文件男图、數(shù)據(jù)庫或Web API 中的數(shù)
據(jù),再加載到R 的數(shù)據(jù)框中筹误。
1.2 數(shù)據(jù)整理
導入數(shù)據(jù)后桐早,就應該對數(shù)據(jù)進行整理。數(shù)據(jù)整理就是將數(shù)據(jù)保存為一致的形式厨剪,以滿足其所在數(shù)據(jù)集在語義上的要求哄酝。簡而言之,如果數(shù)據(jù)是整潔的祷膳,那么每列都是一個變量陶衅,每行都是一個觀測。整潔的數(shù)據(jù)非常重要直晨,因為一致的數(shù)據(jù)結構可以讓你將工作重點放在與數(shù)據(jù)有關的問題上搀军,而不用再費盡心思地將數(shù)據(jù)轉換為各種形式以適應不同的函數(shù)膨俐。一旦擁有了整潔的數(shù)據(jù),通常下一步就是對數(shù)據(jù)進行轉換罩句。數(shù)據(jù)轉換包括選取出感興趣的觀測(如居住在某個城市里的所有人焚刺,或者去年的所有數(shù)據(jù))、使用現(xiàn)有變量創(chuàng)建新變量(如根據(jù)距離和時間計算出速度)的止,以及計算一些摘要統(tǒng)計量(如計數(shù)或均值)檩坚。數(shù)據(jù)整理和數(shù)據(jù)轉換統(tǒng)稱為數(shù)據(jù)處理。
1.3 可視化與建模
一旦使用需要的變量完成了數(shù)據(jù)整理诅福,那么生成知識的方式主要有兩種:可視化與建模匾委。這兩種方式各有利弊,相輔相成氓润。因此赂乐,所有實際的數(shù)據(jù)分析過程都要在這兩種方式間多次重復。
- 可視化本質上是人類活動咖气。良好的可視化會讓你發(fā)現(xiàn)意料之外的現(xiàn)象挨措,或對數(shù)據(jù)提出新的問題。你還可以從良好的可視化中意識到自己提出了錯誤的問題崩溪,或者需要收集不同的數(shù)據(jù)浅役。可視化能夠帶給你驚喜伶唯,但不要期望過高觉既,因為畢竟還是需要人來對其進行解釋。
- 模型是彌補可視化缺點的一種工具乳幸。如果已經(jīng)將問題定義得足夠清晰瞪讼,那么你就可以使用一個模型來回答問題。因為模型本質上是一種數(shù)學工具或計算工具粹断,所以它們的擴展性一般非常好符欠。即使擴展性出現(xiàn)問題,購買更多計算機也比雇用更多聰明的人便宜瓶埋!但是每個模型都有前提假設希柿,而且模型本身不會對自己的前提假設提出疑問,這就意味著模型本質上不能給你帶來驚喜悬赏。
1.4 溝通
數(shù)據(jù)科學的最后一個步驟就是溝通狡汉。對于任何數(shù)據(jù)分析項目來說,溝通絕對是一個極其重要的環(huán)節(jié)闽颇。如果不能與他人交流分析結果盾戴,那么不管模型和可視化讓你對數(shù)據(jù)理解得多么透徹,這都是沒有任何實際意義的兵多。
1.5 編程
圍繞在這些技能之外的是編程尖啡。編程是貫穿數(shù)據(jù)科學項目各個環(huán)節(jié)的一項技能橄仆。數(shù)據(jù)科學家不一定是編程專家,但掌握更多的編程技能總是有好處的衅斩,因為這樣你就能夠對日常任務進行自動處理盆顾,并且非常輕松地解決新的問題。
2.tidyverse簡介
https://www.tidyverse.org/
http://tidyverse.tidyverse.org
https://github.com/tidyverse/tidyverse
Report bugs at https://github.com/tidyverse/tidyverse/issues
tidyverse是為數(shù)據(jù)科學而設計的R軟件包的自以為是的集合畏梆。 所有軟件包都共享基本的設計理念您宪,語法和數(shù)據(jù)結構。
使用以下命令安裝完整的tidyverse:
2.1 安裝
# Install from CRAN
install.packages("tidyverse")
# Or the development version from GitHub
# install.packages("devtools")
devtools::install_github("tidyverse/tidyverse")
2.2 加載
library(tidyverse)
#> ── Attaching packages ────────────────────────────────────────────────── tidyverse 1.2.1.9000 ──
#> ? ggplot2 3.2.1 ? purrr 0.3.3
#> ? tibble 2.1.3 ? dplyr 0.8.3
#> ? tidyr 1.0.0.9000 ? stringr 1.4.0
#> ? readr 1.3.1 ? forcats 0.4.0
#> ── Conflicts ────────────────────────────────────────────────────────── tidyverse_conflicts() ──
#> x dplyr::filter() masks stats::filter()
#> x dplyr::lag() masks stats::lag()
3 tidyverse包分類
3.1 數(shù)據(jù)導入
- readr
read_csv(); read_tsv(); read_delim(); read_fwf(); read_table(); read_log(); - readxl
read_xls(); read_xlsx(); - haven
打開SAS 奠涌、SPSS宪巨、Stata等外部數(shù)據(jù)
3.2 數(shù)據(jù)整理
- tibble
對data.frame的改進,一種數(shù)據(jù)格式 - tidyr
清洗數(shù)據(jù) gather(); spread();
3.3 數(shù)據(jù)轉換
- dplyr
處理數(shù)據(jù) mutate();select(); filter(); summarise();arrange(); - lubridate
處理時間數(shù)據(jù) - stringr
處理字符串類型 - forcats
處理因子變量(factors)
3.4 數(shù)據(jù)可視化
- ggplot2
R016 ggplot2(01) 圖形語法
R017 ggplot2(02) 快速繪圖qplot()
R018 ggplot2(03) 箱線圖及小提琴圖
R019 ggplot2(04) 點圖與散點圖
R020 ggplot2(05) 直方圖溜畅,條形圖
R021 ggplot2(06) 線圖捏卓,密度圖,qq圖慈格,ECDF圖
R022 ggplot2(07) 誤差圖怠晴,餅圖
R023 ggplot2(08) 組合圖形
R027 ggplot2繪圖參數(shù) — 標題及圖例
3.5 編程
- magrittr
管道運算符 - purr
通過提供一些完整連貫用于函數(shù)和向量的工具集,增強R的函數(shù)編程浴捆。