上一篇文章是R语言的入门。涉及了一些最最基础的知识,主要包括R里的几种数据类型。建议R语言零基础的同学把第一讲理解并掌握后,再进行这一讲的学习。这一部分主要涉及了R语言中的循环,不仅讲解了if, else if, while,for,还讲解了一些function,例如apply()(之前总能在很多大神的教程中看到这个function,但是一直不理解究竟是怎么work的,现在总算明白了)。另外讲到了sapply()这个function也很有意思。
视频地址:https://www.youtube.com/watch?v=GMx8A-p5L4E
网页版PPT地址:https://rockefelleruniversity.github.io/Intro_To_R_1Day/presentations/slides/introToR_Session2.html#1


这里原本还有几页PPT,但都是对第一讲的回顾,很多内容重复,所以我就删掉了。




NOTE: if()
语句先判断()里的内容是不是符合逻辑上的TRUE,如果符合,则执行{}里的命令;如果在逻辑上是FALSE,则不执行{}里的命令。所以上面PPT里,当x是TRUE时,执行了message这行命令,输出的是x is true。而当x是FALSE的时候,则没有输出。

NOTE:但是多数情况下,无论if()里是TRUE还是FALSE,我们总是希望能得到输出,你希望知道what's going on。那么你可以用else语句:

NOTE:需要注意的是else是在第一个{}之后马上出现的,不用换行,并且else之后马上跟着第二个{},也不用换行。

NOTE:如果你的判断条件多余2种可能,那么你需要else if。你可以添加多个else if。



NOTE:else if语句是判断语句。那么接下来这个就是loops(循环),你可以限制某个命令被执行多少次:


NOTE: appendLF
: logical: should messages given as a character string have a newline appended?如果是F,则输出的字符在同一行;如果是T,则每个字符单独占一行。
toupper
: Changes the case to upper.变成大写。




NOTE: apply
也是一种循环。可对某一个命令执行多次。这个function是上面三种里最常用的一种。



NOTE:apply()
里的第二个参数是行/列,1代表行,2代表列,所以上面PPT的意思就是把matexample里所有行”打印“出来。后面的collapse的功能就是把你指定的行或列里的元素放在一起,作为一个character,每个元素用分号隔开。所以最后输出的都是用“”括起来的。


















NOTE:在全局环境里定义的参数数值,不会在function里的重新定义而改变。除非在function()里重新定义的时候使用“<<-”代替“<-”。















【练习时间】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
网友评论