一、基本原理和概念
- R是一种解释型语言, 而不是编译语言, 也就意味着输入的命令能够直接被执行, 而不需要像一些语言要首先构成一个完整的程序形式(如C, Fortan, Pascal, . . . )。
- 当R运行时, 所有变量, 数据, 函数及结果都以对象(objects)的形式存在计算机的活动内存中, 并冠有相应的名字代号。
- 命名规范:对象的名字必须是以一个字母开头(A{Z 或a{z), 中间可以包含字母, 数字(0{9), 点(.)及下划线( ). 因为R对对象的名字区分大小写, 所以x 和X就可以代表两个完全不同的对象。
- 函数ls的功能是显示所有在内存中的对象,如果只要显示出在名称中带有某个指定字符的对象, 则通过设定选项pattern 来实现。如:
ls(pat = "m")
,会显示在名称中以m
开头的对象 - 运行函数ls.str()将会展示内存中所有对象的详细信息
- 要在内存中删除某个对象, 可利用函数
rm
: 运行rm(x)
将会删除对象x
,运行rm(x,y)
将会删除对象x
和y
, 而运行rm(list=ls())
则会删除内存中的所有对象. 在ls()
函数中的一些选项同样也可以运用到rm
中来, 以选择的删除一些对象, 如:rm(list=ls(pat=”^m”))
。
二、R的数据操作
1. 对象
- 在R中,操作的内容称作对象(objects),对象的刻画主要通过:1)名称和内容;2)属性
- 所有的对象都有两个内在属性: 类型和长度。 类型是对象元素的基本种类,共有四种:
数值型
,字符型
,复数型
和逻辑型
;长度是对象中元素的数目。对象的类型和长度可以分别通过函数mode和length得到。 - 对象的类型是可以通过
as.something
这种形式的函数可以完成转换的。 比较两个对象时,需要使用
identical
和all.equal
函数,他们两者之间存在差别:identical
比较数据的内在关系, 如果对象是严格相同的返回TRUE
, 否则返回FALSE
。all.equal
用来判断两个对象是否“ 近似相等” , 返回结果为TRUE
或者对二者差异的描述。 后一个函数在比较数值型变量时考虑到了计算过程中的近似。具体示例如下:0.9 == (1 - 0.1)
identical(0.9, 1 - 0.1)
all.equal(0.9, 1 - 0.1)
0.9 == (1.1 - 0.2)
identical(0.9, 1.1 - 0.2)
all.equal(0.9, 1.1 - 0.2)
all.equal(0.9, 1.1 - 0.2, tolerance = 1e-16)
三、R绘图
有两种绘图函数: 高级绘图函数(high-level plotting functions) 创建一个新的图形, 低级绘图函数(low-level plotting functions) 在现存的图形上添加元素。 绘图参数(graphical parameters) 控制绘图选项, 可以使用缺省值或者用函数par修改。
绘图设备的切换选择:
dev.list() #显示当前绘图设备列表
dev.cur() #显示当前所在绘图设备
dev.set() #切换绘图设备
dev.off() #关闭某个绘图设备
图形设备面板的分割
- 函数
split.screen
分割当前的绘图设备;erase.screen()
删除最后绘制的图形。 - 函数
layout
把当前的图形窗口分割为多个部份, 图形将一次显示在各部分中。 它主要的自变量是一个元素都是整数值的矩阵, 元素指示子窗口(\sub-windows”) 的编号。如:layout(matrix(1:4, 2, 2))
,把设备划分为4个相等的部分。layout.show
查看创建的分割。
- 函数