第二天任务:

完成项目非均匀骰子,通过实践掌握以下技能:

1)使用R和RStudio的用户界面。

2)创建R对象和运行R命令。

3)学会编写自己的R函数和R脚本。

4)加载并使用R包。

5)生成随机样本。

6)利用ggplot2包快速制图。

7)学会获取帮助。

……………………………………………………

------------使用R与RStudio的用户界面-------------

 想要学会一门编程语言,就要掌握与计算机对话的能力,而RStudio就是对话的话筒,R语言就是对话的语言。对话方式就是在RStudio右下角对话框最后一行键入R代码,回车即可。

命令行中的冒号(:)运算符表示返回两个整数值之间所有整数,它是生成一个数字序列的快捷方法:

 >100:105

[1]100 101 102 103 104 105

c代表连接,也代表收集或者是合并

 >a<-c(1,2,3,4,5)

>a

##1 2 3 4 5

如果键入一段不完整的命令就按回车,R会显示一个+提示符,代表R在等你接下来的命令,可以接着键入或按Esc从新键入。

>5-

+

+1

[1]4

如果该行以#号开头,那么改行之后的内容都会是注释。

如果想临时终止程序运行,可以按Ctrl+c。

-------------创建与运行R命令--------------

要想创建一个对象,先确定一个名称,然后使用赋值符号(<-)将数据赋给它,若想知道该对象的值,直接输入数据名称,回车即可。

命令行中的冒号(:)运算符表示返回两个整数值之间所有整数,它是生成一个数字序列的快捷方法:

R语言不等距坐标轴代码 r语言中不等于号怎么打_r语言

注意:

1.R对象命名不能以数字开头。

2.名中不能出现^,!,$,@,+,-,/,*。

3.R区分大小写。

4.同一个对象被第二次赋值的话,R会自动覆盖增强的信息。

5.ls()命令可以查看已经命名了那些R对象。

6.如果在一个运算中涉及两个或两个以上的向量,R会将这些向量排成一行并执行一系列单独运算。

die*die=

|1*1=1   2*2=4  3*3=9 |

|4*4=16  5*5=25 6*6=36|=1 4 9 16 25 36.

7.如果两个向量运算时长度不同,R会在较短的向量上重复,直到短向量与长向量长度相同,然后再执行运算。如果长向量不是短向量的整数倍,R会返回一个警告。

R语言不等距坐标轴代码 r语言中不等于号怎么打_R语言不等距坐标轴代码_02

8.你可以使用%*%执行内乘法,使用%o%执行外乘法。

R语言不等距坐标轴代码 r语言中不等于号怎么打_R语言入门_03

----------------生成随机样本-----------------

要想实现类似随机抽样这样的任务,可以使用R的一些自带函数。比如round函数可以实现数字的四舍五入。factoroal函数可以实现阶乘操纵。mean函数求解平均数。

R语言不等距坐标轴代码 r语言中不等于号怎么打_R语言入门_04

>mean(die)
##3.5
R中有一个随机函数sample,sample有三个参数x,size,replace,sample的任务就是从队列x中抽取size个数字并返回,而replace则代表sample函数是不是可放回抽样,是为TRUE,不是为FALSE或默认为不可放回。
sample函数还定义了prob参数,代表了队列x中每个相应参数的抽取几率。其和可以不唯1,但是不能出现0。
sample(x=die,size=2,replace=TRUE
prob=c(1/8,1/8,1/8,1/8,1/8,3/8))
或者sample(die,size=2,replace=TRUE
prob=c(1/8,1/8,1/8,1/8,1/8,3/8))
##4 4
---------------编写R函数和R脚本------------
R中函数的概念类似与C/C++等传统语言,具体做法是调用function()函数,并在其后加入一个大括号{}。
可以选择在圆括号里加入参数,类似于C++函数里的形参列表。
my_function<-function( ){ }
可以写一个模拟骰子函数:
roll<-function(){
die<-1:6
  dice<-sample(die,size=2,replace=TRUE
prob=c(1/8,1/8,1/8,1/8,1/8,3/8))
  sum(dice)}
roll<-function(bonse){
  dice<-sample(bonse,size=2,replace=TRUE)
  sum(dice)
}#在控制台编写该函数时,应该在编写第一行时删除},然后在编写结束后在加上}回车。

R脚本是一个用来保存R代码的纯文本文件,在RStudio中,可以点击File->New File->R Script来创建一个R脚本,建议写的程序都在R脚本中先运行一下。R脚本面板的Run按钮会默认运行鼠标光标所在的那一行代码,或者运行你选中的一整段代码。

----------------安装与加载R包-----------------

利用install.packages(“ggplot2”)命令使链接上互联网的R下载ggplot2包,下载完成之后还需要library(“ggplot2”)加载该R包。每个R包都只要安装一次,但是在每个新的R会话中都要重新加载R包,因为每次关闭RStudio时都会把R包卸载。

-----------------可视化快速绘图------------------

qplot的以上是快速绘图(quick plot),将两个长度相同的数值向量交给qplot就能绘制出一副散点图。

R语言不等距坐标轴代码 r语言中不等于号怎么打_r语言_05

R语言不等距坐标轴代码 r语言中不等于号怎么打_R语言入门与实践_06

只要给qplot一个要绘制的向量,qplot就会画出一个直方图,binwidth代表了直方图的宽度。

>x<-c(1,2,2,2,3,3)
  >qplot(x,binwidth=1)

R语言不等距坐标轴代码 r语言中不等于号怎么打_R语言不等距坐标轴代码_07

replicate函数提供了快速重复运行一段R代码的命令。

rolls<-replicate(10000,roll())
qplot(rolls,binwidth=0.5)

该项目最终结果:

函数脚本:

R语言不等距坐标轴代码 r语言中不等于号怎么打_r语言_08

控制台命令:

R语言不等距坐标轴代码 r语言中不等于号怎么打_R语言入门_09

图像结果:

R语言不等距坐标轴代码 r语言中不等于号怎么打_R语言入门与实践_10

-----------------------------注-------------------------------

1.本学习记录来自Garrett Grolemund先生所著《Hands-On Programming with R》(中文名R语言入门与实践)一书。

2. 可以通过键入?和函数名称(或者R包名称)就可以打开该函数(或R包)的帮助页面。

函数帮助页面通常包括函数描述(Description),使用方法(Usage),参数(Arguments),相关细节(Details),返回值(Value),另请参阅(See Also),代码实例(Examples)。如果忘记了函数的确切名称,可以使用??log,R会列出与该关键词有关的超链接,可以将此看作是帮助页面的帮助页面。