今天就是第6天了,至少有點感覺了,加油吧!
1.設(shè)置下載鏡像源file edit (~/.Rprofile)--options(repos=c(CRAN="網(wǎng)址,一般是清華鏡像源"))--options(BioC_mirror="網(wǎng)址,一般是華中科技大鏡像源")--保存后使用代碼options$repos和options$BioC_mirror檢驗是否設(shè)置成功。
2.下載包--如果下載的包來自CRAN,則install.packages("包"),如果來自BioC_mirror,則使用BiocManager::install(“包”)。
3.加載包require(包)或library(包)。
4.dplyr五個基礎(chǔ)函數(shù)
- 新增列
mutate(new,S1*S2)新增一列,新列名為new,新建這列各數(shù)據(jù)是將向量S1和S2乘積作為元素。 - select函數(shù)篩選列
按列篩選
select(test,1)是指列出變量test中第1列的數(shù)據(jù);
select(test,c(1,5))是指列出變量test中第1列和第5列的數(shù)據(jù);
select(test,tang)或者select(test,tang,tao)是指列出變量test中列名為tang或者tang tao的數(shù)據(jù);
此外還可以用one_of函數(shù),簡單介紹一下:one_of()是用來聲明選擇對象的。比如one_of("x","y")就是表明選擇x,y變量,那么應(yīng)用到select函數(shù)可以這樣用
TT <- c("Petal.Length", "Petal.Width") select(test, one_of(TT))即先將你要選擇的列數(shù)賦值為變量TT,應(yīng)用one_of函數(shù)就可; - filter函數(shù)篩選行
filter(bcd, Species == "setosa")注意這里是雙等號,是指列出變量bcd中物種種類為setosa的數(shù)據(jù);
filter(bcd, Species == "setosa"&Sepal.Length > 5 )是指列出bcd變量中列出物種種類為setosa且同時滿足Sepal.Length 這個向量> 5 的元素;注意&其實就是和的意思,即同時滿足;
filter(bcd, Species %in% c("setosa","versicolor"))這些函數(shù)可以套娃再套娃,還記得%in%函數(shù)的應(yīng)用嘛,如A %in% B,即選擇從屬于B的元素A;
- arrange函數(shù)(按某1列或某幾列對整個表格進行排序)
arrange(test, Sepal.Length)即將變量test按Sepal.Length這列從小到大排序列出;arrange(test, dsc(Sepal.Length))變量test按Sepal.Length這列從大到小排序列出;
- summarise總結(jié)函數(shù)
summarise總結(jié)函數(shù)可以對數(shù)據(jù)集實現(xiàn)"歸納"、"總結(jié)"。summarise函數(shù)往往對分組數(shù)據(jù)使用,對每個分組數(shù)據(jù)進行歸納,如最大值、最小值、均值、中位數(shù)等等 。
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length))意即先按將變量test按Species特點分組,然后按分組的不同計算其平均值和方差。
- 其他
1.管道函數(shù) 管道函數(shù)是一種傳遞函數(shù),就像一個球從管道口進入可以一路走過管道從管道口出來;
test%>%group_by(Species)%>%summarise(mean(Sepal.Length),sd(Sepal.Length))意思是test變量中的數(shù)據(jù)要分組,分組依據(jù)是Species的不同,分好組后的變量還要進行平均值與方差的計算;
2.count函數(shù)。COUNT 函數(shù)獲取區(qū)域中或一組數(shù)字中的數(shù)字字段中條目的個數(shù)count(test,Species)意思根據(jù)Species這列計數(shù)不同的行數(shù);
3.inner_join(test1, test2, by = "x")test1與test2取交集;
left_join(test1, test2, by = 'x')
full_join( test1, test2, by = 'x')
semi_join(x = test1, y = test2, by = 'x')半連接:返回能夠與y表匹配的x表所有記錄semi_join(?有點繞,不是很懂)
anti_join(x = test2, y = test1, by = 'x')返回?zé)o法與y表匹配的x表的所記錄anti_join(這個也不是很懂)
bind_rows(test1, test2)注意bind_rows函數(shù)要求test1與test2列數(shù)相同;
bind_cols(test1, test3)注意bind_cols函數(shù)要求test1與test2行數(shù)相同。
注:
文中代碼引用自生信星球,在此感謝