R包學(xué)習(xí)框架
R包安裝及加載
- 鏡像設(shè)置
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
分別對應(yīng)清華源和中科大源的鏡像 - 安裝
install.packages(“包”)
存在于CRAN網(wǎng)站;BiocManager::install(“包”)
存在于bioconductor
- 加載
libarary(包)
和require(包)
均可
dplyr五個基礎(chǔ)函數(shù)
- 新增列
使用test <- iris[c(1:2,51:52,101:102),]
調(diào)用內(nèi)置數(shù)據(jù)集(iris為常用的分類實(shí)驗(yàn)數(shù)據(jù)集,調(diào)用向量數(shù)據(jù)后對test變量進(jìn)行賦值)萄涯;
使用mutate()
進(jìn)行新增列(定義new=前兩列數(shù)據(jù)的乘積)
- 按列篩選
- 按照列號篩選扣典,使用命令
select(test,5)
進(jìn)行第5列數(shù)據(jù)提取趾诗;
使用命令select(test,c(2,3))
進(jìn)行第2和第3列數(shù)據(jù)提取
- 按照列名進(jìn)行篩選,使用命令
select(test,Sepal.Width)
篩選出以Sepal.Width命名的那一列
使用命令select(test,Sepal.Length,Petal.Length)
可篩選兩列數(shù)據(jù)
使用vars <- c("Petal.Length", "Petal.Width") select(test, one_of(vars))
對vars進(jìn)行賦值
- 篩選行,使用
filter()
篩選行 - 對整個表格排序恃泪,使用
arrange()
- 進(jìn)行匯總郑兴,使用命令
summaries()
group_by()
dplyr兩個使用技能
- 管道操作,
%>%
是最常用的一個操作符贝乎,就是把左側(cè)準(zhǔn)備的數(shù)據(jù)或表達(dá)式情连,傳遞給右側(cè)的函數(shù)調(diào)用或表達(dá)式進(jìn)行運(yùn)行,可以連續(xù)操作就像一個鏈條一樣
- 對可擴(kuò)展單元格或集合表達(dá)式進(jìn)行計數(shù)览效,使用
count
dplyr處理關(guān)系數(shù)據(jù)
- 將兩個表進(jìn)行連接却舀,在建立數(shù)據(jù)框時候加入語句
stringsAsFactors = FALSE
此時數(shù)據(jù)框?qū)⒉粫J(rèn)把字符型轉(zhuǎn)化為因子,運(yùn)行代碼 - 取兩個表數(shù)據(jù)中的交集朽肥,使用
inner_join()
-
左連(左表的所有數(shù)據(jù)列出禁筏,右表的相同部分列出,不同部分用null 補(bǔ)齊)
- 全連衡招,是取兩個表的并集篱昔,使用
full_join()
-
半連接,為了方便說明半連接的含義始腾,這里我們用"t1.x semi= t2.y"來表示表T1和表T2做半連接州刽,且T1是驅(qū)動表,T2是被驅(qū)動表浪箭,半連接條件為t1.x=t2.y穗椅。這里"t1.x semi= t2.y"的含義是只要在表T2中找到一條記錄滿足t1.x=t2.y,則馬上停止搜索表T2奶栖,并直接返回表T1中滿足條件t1.x=t2.y的記錄匹表。也就是說,表T2中滿足半連接條件t1.x=t2.y的記錄即使有多條宣鄙,表T1中也只會返回第一條滿足條件的記錄袍镀。所以半連接和普通的內(nèi)連接不同,半連接實(shí)際上會去重(兩表關(guān)聯(lián)冻晤,只返回匹配上的數(shù)據(jù)并且只會返回一張的表的數(shù)據(jù)苇羡,半連接一般就是指的在子查詢中出現(xiàn) IN 和 EXISTS)。
- 反連接鼻弧,兩表關(guān)聯(lián)设江,只返回主表的數(shù)據(jù),并且只返回主表與子表沒關(guān)聯(lián)上的數(shù)據(jù)攘轩,這種連接就叫反連接叉存。反連接一般就是指的 NOT IN 和 NOT EXISTS,使用命令
anti_join()
- 簡單合并度帮,使用
bind_rows()
鹉胖,bind_cols()