上一篇文章是R語言的入門西土。涉及了一些最最基礎(chǔ)的知識(shí),主要包括R里的幾種數(shù)據(jù)類型。建議R語言零基礎(chǔ)的同學(xué)把第一講理解并掌握后凄鼻,再進(jìn)行這一講的學(xué)習(xí)。這一部分主要涉及了R語言中的循環(huán)聚假,不僅講解了if, else if, while,for块蚌,還講解了一些function,例如apply()(之前總能在很多大神的教程中看到這個(gè)function膘格,但是一直不理解究竟是怎么work的峭范,現(xiàn)在總算明白了)。另外講到了sapply()這個(gè)function也很有意思瘪贱。
視頻地址:https://www.youtube.com/watch?v=GMx8A-p5L4E
網(wǎng)頁版PPT地址:https://rockefelleruniversity.github.io/Intro_To_R_1Day/presentations/slides/introToR_Session2.html#1
這里原本還有幾頁P(yáng)PT纱控,但都是對第一講的回顧,很多內(nèi)容重復(fù)菜秦,所以我就刪掉了甜害。
NOTE: if()
語句先判斷()里的內(nèi)容是不是符合邏輯上的TRUE,如果符合喷户,則執(zhí)行{}里的命令唾那;如果在邏輯上是FALSE,則不執(zhí)行{}里的命令。所以上面PPT里闹获,當(dāng)x是TRUE時(shí)期犬,執(zhí)行了message這行命令,輸出的是x is true避诽。而當(dāng)x是FALSE的時(shí)候龟虎,則沒有輸出。
NOTE:但是多數(shù)情況下沙庐,無論if()里是TRUE還是FALSE鲤妥,我們總是希望能得到輸出,你希望知道what's going on拱雏。那么你可以用else語句:
NOTE:需要注意的是else是在第一個(gè){}之后馬上出現(xiàn)的棉安,不用換行,并且else之后馬上跟著第二個(gè){}铸抑,也不用換行贡耽。
NOTE:如果你的判斷條件多余2種可能,那么你需要else if鹊汛。你可以添加多個(gè)else if蒲赂。
NOTE:else if語句是判斷語句。那么接下來這個(gè)就是loops(循環(huán))刁憋,你可以限制某個(gè)命令被執(zhí)行多少次:
NOTE: appendLF
: logical: should messages given as a character string have a newline appended?如果是F滥嘴,則輸出的字符在同一行;如果是T至耻,則每個(gè)字符單獨(dú)占一行若皱。
toupper
: Changes the case to upper.變成大寫。
NOTE: apply
也是一種循環(huán)有梆∈羌猓可對某一個(gè)命令執(zhí)行多次意系。這個(gè)function是上面三種里最常用的一種泥耀。
NOTE:apply()
里的第二個(gè)參數(shù)是行/列,1代表行蛔添,2代表列痰催,所以上面PPT的意思就是把matexample里所有行”打印“出來。后面的collapse的功能就是把你指定的行或列里的元素放在一起迎瞧,作為一個(gè)character夸溶,每個(gè)元素用分號隔開。所以最后輸出的都是用“”括起來的凶硅。
【練習(xí)時(shí)間】https://rockefelleruniversity.github.io/Intro_To_R_1Day//exercises/exercises/conditionsAndLoops_exercise.html
NOTE:在全局環(huán)境里定義的參數(shù)數(shù)值缝裁,不會(huì)在function里的重新定義而改變。除非在function()里重新定義的時(shí)候使用“<<-”代替“<-”足绅。
【練習(xí)時(shí)間】https://rockefelleruniversity.github.io/Intro_To_R_1Day//exercises/exercises/Functions_exercise.html
【答案】https://rockefelleruniversity.github.io/Intro_To_R_1Day//exercises/answers/Functions_answers.html