《學(xué)習(xí)小組Day6筆記--旮旯里的山大王》

學(xué)習(xí)R包學(xué)習(xí)筆記:
思維導(dǎo)圖:

image.png

問題總結(jié):

  1. 安裝包和在哪個(gè)project下無關(guān)。
  2. 要使用dplyr包里的函數(shù)院崇,就需要先library這個(gè)包(就是說,dplyr這個(gè)R包安裝好了后尤蛮,每次運(yùn)用的時(shí)候都需要加載呐馆,那么后面運(yùn)行的函數(shù)才會包含“dplyr包”來運(yùn)行)。
  3. 如果library報(bào)錯(cuò)丛版,就重新安裝巩掺。
  4. 學(xué)習(xí)R語言-dplyr; R--dplyr包介紹學(xué)習(xí)group by詳解页畦;R語言中管道操作 %>%, %T>%, %$% 和 %%胖替;R語言環(huán)境變量的設(shè)置:options();R語言數(shù)據(jù)框中的stringsAsFactors參數(shù);CAT_6430筆記;R語言data.frame基本操作

尚待學(xué)習(xí):
(1)如果要對每一行進(jìn)行均值計(jì)算,怎么搞豫缨?
(2)semi_join独令;
(3)anti_join。

課程內(nèi)容:學(xué)習(xí)R包

【以dplyr為例】

1. 安裝和加載R包

1.1 鏡像設(shè)置

根據(jù)你還在每次配置Rstudio的下載鏡像嗎好芭?燃箭,但這個(gè)方法并不適用于每個(gè)電腦,有一部分會失敗舍败。隨緣招狸,失敗的話就每次需要下載R包時(shí)運(yùn)行這兩句代碼即可。

1.2 安裝

聯(lián)網(wǎng)

R包安裝命令是install.packages(“包”)或者BiocManager::install(“包”)邻薯。取決于你要安裝的包存在于CRAN網(wǎng)站還是Biocductor裙戏,存在于哪里?可以谷歌搜到厕诡。

1.3 加載

下面兩個(gè)命令均可累榜。

library(包)
require(包)

2. 安裝加載三部曲

options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) #鏡像設(shè)置
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") #鏡像設(shè)置
install.packages("dplyr") #安裝
library(dplyr) #加載

3. dplyr五個(gè)基礎(chǔ)函數(shù)

3.1 賦值:<-

以示例數(shù)據(jù)為例,示例數(shù)據(jù)直接使用內(nèi)置數(shù)據(jù)集iris的簡化版:

  • 復(fù)習(xí)一下Day5 內(nèi)容:
    提取元素部分內(nèi)容:
    X[c(a,b)] #提取第a列和第b列灵嫌,X[a:b] #提取第a列到第b列
test <- iris[c(1:2,51:52,101:102),]
  • 查看幫助:
 ?iris
image.png
image.png

3.2 新增列:mutate()

mutate(test, new = Sepal.Length * Sepal.Width)

說明:新增列名new, 值=第一列乘以第二列

image.png

3.3 按列篩選:select()

3.3.1 按列號篩選
eg. (1)選擇test的第1列壹罚;(2)第1,5列;

select(test,1) #選擇test的第1列

select(test,c(1,5)) #選擇test的第1,5列

image.png

3.3.2 按列名篩選

eg. (1)選擇test的“Sepal.Length”這一列寿羞;(2)選擇test的“Sepal.Length猖凛、Petal.Width”這兩列;(3)

select(test,Sepal.Length) #選擇test的“Sepal.Length”這一列稠曼。

select(test, Petal.Length, Petal.Width) #選擇test的“Sepal.Length形病、Petal.Width”這兩列客年。

vars <- c("Petal.Length", "Petal.Width") #設(shè)置vars為Petal.Length, Petal.Width字符串向量;
select(test, one_of(vars)) #

r語言中one_of()函數(shù)的作用:one_of()是用來聲明選擇對象的漠吻。比如one_of("x","y")就是表明選擇x,y變量量瓜。

image.png

3.4 篩選行:filter()

filter(test, Species == "setosa") #篩選species這一列,值為setosa的行途乃。

filter(test, Species == "setosa"&Sepal.Length > 5 ) #雙重篩選:篩選species這一列值為setosa且Sepal.Length這一列值大于5的行绍傲。

filter(test, Species %in% c("setosa","versicolor")) #篩選Species這一列,值為setosa和versicolor的行耍共。

復(fù)習(xí)Day5內(nèi)容:
(1) 雙等號“==”表示等于烫饼,單等號“=”為賦值;
(2) %in%x:【例如:[x %in% c(1,2,5)]#存在于向量c(1试读,2杠纵,5)中的元素】

image.png

3.5 按某1列或某幾列對整個(gè)表格進(jìn)行排序:arrange()

arrange(test, Sepal.Length) #對test中的Sepal.Length這一列進(jìn)行排序(默認(rèn)從小到大排序)
arrange(test, desc(Sepal.Length))#用desc從大到小
image.png

3.6 匯總:summarise()

對數(shù)據(jù)進(jìn)行匯總操作,結(jié)合group_by使用實(shí)用性強(qiáng)。
group_by的意思是根據(jù)by對數(shù)據(jù)按照哪個(gè)字段進(jìn)行分組钩骇,或者是哪幾個(gè)字段進(jìn)行分組比藻。來源:group by詳解

summarise(test, mean(Sepal.Length), sd(Sepal.Length)) #對數(shù)據(jù)進(jìn)行簡單的統(tǒng)計(jì)匯總,計(jì)算Sepal.Length的平均值和標(biāo)準(zhǔn)差

group_by(test, Species)
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length)) # 先對test按Species分組倘屹,分組后分別計(jì)算每組Sepal.Length的平均值和標(biāo)準(zhǔn)差
image.png

4. dplyr兩個(gè)實(shí)用技能

4.1 管道操作 %>% (快捷鍵:cmd/ctr + shift + M)

(加載任意一個(gè)tidyverse包即可用管道符號)
我們對同一個(gè)數(shù)據(jù)塊的要進(jìn)行次行的處理银亲,一條語句是很難完成的,

%>%傳遞到函數(shù):把一個(gè)數(shù)據(jù)集傳給一個(gè)匿名函數(shù)纽匙,進(jìn)行復(fù)雜的數(shù)據(jù)的操作务蝠。在這里,我們會顯示的定義數(shù)據(jù)集的名字作為匿名函數(shù)的參數(shù)烛缔。

test %>%  #將test數(shù)據(jù)集傳給下一個(gè)函數(shù)馏段;
  group_by(Species) %>% #對test按Species分組,再將此數(shù)據(jù)集傳給下一個(gè)函數(shù)力穗;
  summarise(mean(Sepal.Length), sd(Sepal.Length)) #分別計(jì)算上個(gè)數(shù)據(jù)集的每組Sepal.Length的平均值和標(biāo)準(zhǔn)差
image.png

4.2 count統(tǒng)計(jì)某列的unique值

count(test,Species) #count 用于計(jì)算某一列的唯一的值毅弧。
image.png

5.dplyr處理關(guān)系數(shù)據(jù)

即將2個(gè)表進(jìn)行連接,注意:不要引入factor

options(stringsAsFactors = F)

test1 <- data.frame(x = c('b','e','f','x'), # 新建數(shù)據(jù)框test1当窗,test2,注意數(shù)據(jù)框中不能有factor寸宵。
                    z = c("A","B","C",'D'),
                    stringsAsFactors = F)
test1

test2 <- data.frame(x = c('a','b','c','d','e','f'), 
                    y = c(1,2,3,4,5,6),
                    stringsAsFactors = F)
test2 
image.png

5.1 取交集:內(nèi)連inner_join

inner_join(test1, test2, by = "x") #取數(shù)據(jù)框test1 and test2中崖面,x列相同的行和列。
image.png

5.2 左連left_join

left_join(test1, test2, by = 'x') 
#以test1的x列為參照梯影,合并兩個(gè)表格巫员,注意,這里x是兩個(gè)數(shù)據(jù)框都有的甲棍。
#并且以test1的x列全部列出简识,不管test2的x比test1多還是少,均以test1為主。

left_join(test2, test1, by = 'x')
image.png

5.3 全連full_join

full_join(test1,test2,by='x') #兩個(gè)數(shù)據(jù)框按共有的x列七扰,全部合并奢赂,注意,這里by=也只能選兩個(gè)數(shù)據(jù)框都有的列名颈走。
image.png

5.4 半連接:返回能夠與y表匹配的x表所有記錄:semi_join

semi_join(x = test1, y = test2, by = 'x') #這里我也沒弄懂膳灶。
image.png

5.5 反連接:返回?zé)o法與y表匹配的x表的所記錄anti_join

anti_join(x = test2, y = test1, by = 'x') #這里依舊沒弄懂。
image.png

5.6 簡單合并

test1 <- data.frame(x = c(1,2,3,4), y = c(10,20,30,40))
test1

test2 <- data.frame(x = c(5,6), y = c(50,60))
test2

test3 <- data.frame(z = c(100,200,300,400))
test3

bind_rows(test1, test2) # 注意立由,bind_rows()函數(shù)需要兩個(gè)數(shù)據(jù)框列數(shù)相同轧钓;

bind_cols(test1, test3) #注意,bind_cols()函數(shù)需要兩個(gè)數(shù)據(jù)框行數(shù)相同锐膜;
image.png

感謝老師指導(dǎo)????????????????

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末毕箍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子道盏,更是在濱河造成了極大的恐慌霉晕,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捞奕,死亡現(xiàn)場離奇詭異牺堰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)颅围,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門伟葫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人院促,你說我怎么就攤上這事筏养。” “怎么了常拓?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵渐溶,是天一觀的道長。 經(jīng)常有香客問我弄抬,道長茎辐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任掂恕,我火速辦了婚禮拖陆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘懊亡。我一直安慰自己依啰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布店枣。 她就那樣靜靜地躺著速警,像睡著了一般叹誉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上闷旧,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天长豁,我揣著相機(jī)與錄音,去河邊找鬼鸠匀。 笑死蕉斜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缀棍。 我是一名探鬼主播宅此,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼爬范!你這毒婦竟也來了父腕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤青瀑,失蹤者是張志新(化名)和其女友劉穎璧亮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體斥难,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡枝嘶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哑诊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片群扶。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖镀裤,靈堂內(nèi)的尸體忽然破棺而出竞阐,到底是詐尸還是另有隱情,我是刑警寧澤暑劝,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布骆莹,位于F島的核電站,受9級特大地震影響担猛,放射性物質(zhì)發(fā)生泄漏幕垦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一智嚷、第九天 我趴在偏房一處隱蔽的房頂上張望纺且。 院中可真熱鬧猜嘱,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锐墙,卻和暖如春花枫,著一層夾襖步出監(jiān)牢的瞬間敦锌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工马胧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛙粘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親伯复。 傳聞我的和親對象是個(gè)殘疾皇子边翼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345