R 常用技巧
Other Reference:
- Wrangling (Rpubs Note)
- Visualization
- Visualization (Rpubs Note)
- Text Mining (Preprocessing)
- Text Mining (Chinese)
- PCA 主成分分析 (Principal Component Analysis)
Package, initialization
Encode
Deal with NA
符號 |
定義 |
NA |
missing or undefined data |
NULL |
empty object (e.g. null/empty lists) |
Inf and -Inf |
positive and negative infinity |
NaN |
results that cannot be reasonably defined |
Data Frame Type
- data.frame
- 預覽全部資料
- data.frame會將字串資料轉換成factor
- data.table
- data.table不會
- 沒有rowname
- 語法使用list()
Read & Write
-
套件介紹
- library(foreign) 可以處理非csv的檔案,如sas
- library(XML)
- library(DBI) 讀取關聯式資料庫
- library(RMySQL) 讀取SQL資料庫
-
Read Data
- fread (速度最快/大量處理)
- read_csv (速度中等)
- csv, xlsx, xls
- library(readr)
- read.csv (速度最慢)
- read_file
- read.table
- Write Data
- fwrite
- write.csv
- saveXML
- write.foreign
Function
排序
[1] "A" "B" "C" "D" "E" "F"
- rank
- 回傳排序後(A-F)的排名, 依照排序前的順序打印
[1] 4 1 3 6 2 5
D: rank 4, A: rank 1
[1] 2 5 3 1 6 4
A: index[2], B: index[5]
Dplyr
Join
- merge
- left_join
- right_join
- inner_join
- all_join
- semi_join
SQL
apply 系列
1. apply
2. lapply
3. sapply
4. tapply
aggregate
by
Map Reduce
Map
與lapply頗像,讓完整的df中的不同obs.分別執行同樣的function,再一起存入一個list
Reduce
- 將一個向量按相鄰的兩個元素依次作二元函数運算(一層包一層的疊加),最后输出结果。
- Reduce的基本參數有兩個,參數1是二元函数,参數2是運算向量
- 參數註解:
- f: 有兩個參數的函数对象
- x: 向量
- init: 一個標準值,類型和x向量的元素相同
- right: 當值為FALSE時,從向量的左側開始,依次向右側取出元素傳给函数;當值為TRUE時,則從向量的右側開始
- accumulate:當值為TRUE時,會呈現逐步運算的结果,若為預設值,以上運算都只會输出最终结果
mapReduce
- 與前面说的Map和Reduce功能完全不同,mapReduce提供了按分组變量運行指定函数的方式
- 實現分組統計的一種簡便、直接的方式,且能同時指定多個函數
- 回傳結果為一矩陣,同aggregate和sapply功能,但mapReduce可以實現平行運算,是為其優點
按性別分組,計算統計指標:平均年齡,平均體重,年齡標準差,體重標準差
Identify item
identical
辨認兩者是否完全相等
unique
找出不重複的值(組合)
duplicated
一個個判斷是否為重複,第一次出現是新值,第二次再出現一樣的即為重複。
Data Reshaping
melt/gather(寬的→長的)
cast/speard(長的→寬的)
case_when
利用case_when()函數將連續值變為區間類別
switch