R语⾔基础(⽤最简单的⽅式了解学习R语⾔)
⼼灵导语:沮丧的感觉是由⼤脑的懒造成的,它在提⽰你放弃做这么难的事情,去些容易或有趣的事情来做。
学习编程也⼀样,⼤脑越是感到沮丧,你越应该鞭策⾃⼰去战胜沮丧。认识到这⼀点之后,在学习编程的过程中,如果遇到了令⼈沮丧的难题,要乐观积极地对待这样的感觉:因为你是在挑战⾃我。如果每天都能挑战⾃⼰⼀点点,可以预见,不⽤多久你就会成为⼀名信⼼满满的程序员。
R和RStudio安装包下载地址——>
学习R语⾔⽬的:
学习如何加载数据,组合与拆解数据对象,玩转R的系统环境,编写⾃⼰的R函数,以及使⽤R的所有编程⼯具,⽐如else语句、for循环、S3类、R的包系统以及调试⼯具等。这三个项⽬也会涉及如何编写向量化的R代码,这种代码风格的好处在于其速度较快,并且能够最⼤化地发挥R的潜能。
如何⾼效⽆误地存储、检索和操作⼤规模的数据。
R语⾔的传统强项是建模与作图。最⼤的特⾊之⼀就在于将R视为⼀门纯粹的编程语⾔,⽽不是统计软件。
不仅学习如何利⽤R语⾔进⾏编程,更在于如何利⽤编程技术解决数据科学家在⼯作中会遇到的各种实际问题。
R基础
⼀、R的⽤户界⾯
100:130,那么R将返回31个值,因为该命令⽣成了100到130之间的所有整数。
命令⾏中的冒号运算符(:)表⽰返回两个整数值之间的所有整数,它是⽣成⼀个数字序列的快捷⽅法。
R是⼀种动态编程语⾔,这就意味着在你运⾏R代码时,编译操作会由R⾃动完成。
在R中,#被称作注释符号
取消命令可以键⼊ctrl+c
练习:
随意选⼀个数字,并加2
再乘以3
再减去6
最后再除以3。
结果还是随意选择的那个数。
⼆、对象
在R中存储的数据就是⼀个R对象。
要创建⼀个R对象,先确定⼀个名称,然后使⽤赋值符号(⼩于号<;后紧跟⼀个减号-)将数据赋值给它。R会⽣成⼀个具有该名称的R对象,并将赋值符号后⾯的数值存储在其中。
当你询问R对象a⾥⾯是什么数据时,R会另起⼀⾏并告诉你答案。
为对象命名并赋值之后,就可以在新命令中使⽤该对象了。a的值为1,因此这⾥加2之后结果就变成了3。
对象命名规则:
对象名不能以数字开头;
⼀些特殊的符号不能在名称中出现,如^、!、$、@、+、-、/或者*
R还区分⼤⼩写,因此name和Name是两个不同的对象。
当你对⼀个数字集执⾏操作时,R会将相同的运算应⽤于该数字集中的每个元素。
三、函数
R中函数的使⽤⽅法⾮常简单,只需把函数的名称敲出来并在其后的括号中键⼊相应的数据即可。
round函数有几个参数
round函数可以实现数字的四舍五⼊操作
factorial函数可以实现阶乘操作。
“掷骰⼦”的任务对应的函数便是sample函数,它可以模拟掷骰⼦。
sample函数有两个参数:⼀个名为x的向量和⼀个名为size的数字。
sample函数的作⽤便是从向量x中抽取size个元素并返回。
要想掷骰⼦并得到⼀个点数,可将x设置为1:6,然后从中抽取⼀个元素。每次掷都会得到⼀个新的(可能不同的)点数。
round函数会默认将数值四舍五⼊到⼩数点后的0位。要替代该默认值,可以为digits提供不同的值.
在调⽤⼀个包含多个参数的函数时,从第⼆个参数或者第三个参数开始,应该写出每个参数的名称。
如果你没有写出参数名称,那么R会按顺序将你的值与函数中的参数匹配。
四、可放回抽样
我们掷骰⼦时,每个骰⼦之间都是相互独⽴的。如果第⼀个骰⼦的点数是6,这并不妨碍第⼆个骰⼦的点数也是6。也就是说,第⼀次掷骰⼦的结果不应该对第⼆次的结果有任何影响。这样的取样逻辑也可以⽤sample函数实现,只不过需要额外设定参数replace=TRUE 。
进⾏可放回抽样时,sample函数从罐中取出⼀个点数并记录下该点数的值,然后将该点数放回罐中。
模拟掷⼀对骰⼦的实现⽅法。如果你想知道两个骰⼦的总点数,只需要将模拟的结果直接交给sum函数即可。
五、编写⾃定义函数
问题:
来掷虚拟的骰⼦设计⼀个函数叫作roll(), 它的运⾏⽅式如下:每次调⽤函数roll(),R都会返回两个骰⼦点数的和。
解决⽅案:
roll<-function(){
die<-1:6
dice<-sample(die,size=2,replace=TRUE)
sum(dice)
}
任何⼀个R函数都包含三个部分:函数名、程序主体以及参数集合
利⽤function构建完函数之后,不要忘记将其输出保存到某个R对象中。这个对象就是构建的新函数了。它的使⽤⽅法很简单,只需要键⼊这个对象的名称,跟上⼀对括号即可。
可以将这⼀对括号想象成这个函数的“触发器”,它可以触发R去运⾏这个函数。如果你在R控制台中键⼊⼀个函数名⽽没有带上这对括号,那么R只会展⽰这个函数所存储的代码。
在编写函数时应该确保最后⼀⾏代码具有明确的返回值。
六、参数
若有
roll2<-function(){
dice<-sample(bones,size=2,replace=TRUE)
sum(dice)
}
会有错误不到对象“bones”
将bones放⼊到参数⾥⾯就可以了。
这样:
roll2<-function(bones){
dice<-sample(bones,size=2,replace=TRUE)
sum(dice)
}
在数如roll2(bones=1:4)即可:
函数运⾏时,R会将函数主体中的每个参数名称替换为⽤户为该参数提供的值。如果⽤户没有设置参数值,那么R会⽤该参数的默认值代替(前提是在定义函数时设置了该参数的默认值)。
R中的任何⼀个函数都必须包含这三个部分,你可以⽤function函数分别定义这三个部分。
1、函数名:⽤户可以通过键⼊函数名并加上圆括号的⽅式来运⾏该函数,如roll2()。
2、函数主体:只要⽤户调⽤函数,R将运⾏此代码
3、参数:⽤户可以为出现在函数主体中的这些变量提供值
4、参数的默认值:⽤户未提供值时,R可以为参数使⽤的可选值。
5、最后⼀⾏代码:函数将返回最后⼀⾏代码运⾏的结果。
七、脚本
R脚本就是⼀个⽤来保存R代码的纯⽂本⽂件。
在RStudio中,你可以通过在菜单栏中依次点击File->NewFile->Script来创建⼀个
强烈建议⼤家在运⾏代码之前,使⽤脚本的形式编写和编辑⾃⼰的程序。为什么呢?因为养成这样的习惯之后,你的所有⼯作都有案可查,并且具有很强的可再现性。脚本⾮常便于编辑和校对程序,⽽且便于分享给他⼈要保存⼀段脚本,单击脚本⾯板,然后在菜单栏中选择File>SaveAs 即可。
⼋、⼩结
R语⾔有两个最重要的组成部分:
⼀个是对象,⽤来存储数据;
另⼀个是函数,⽤来操作数据。
R还使⽤+、、*、/和<-等运算符来完成基本的任务。
作为⼀名数据科学家,你可以利⽤R对象在计算机内存中存储数据,并通过R函数将某些复杂的计算任务⾃动化。