一、基本原理和概念

  1. R是一种解释型语言, 而不是编译语言, 也就意味着输入的命令能够直接被执行, 而不需要像一些语言要首先构成一个完整的程序形式(如C, Fortan, Pascal, . . . )。
  2. 当R运行时, 所有变量, 数据, 函数及结果都以对象(objects)的形式存在计算机的活动内存中, 并冠有相应的名字代号。
  3. 命名规范:对象的名字必须是以一个字母开头(A{Z 或a{z), 中间可以包含字母, 数字(0{9), 点(.)及下划线( ). 因为R对对象的名字区分大小写, 所以x 和X就可以代表两个完全不同的对象。
  4. 函数ls的功能是显示所有在内存中的对象,如果只要显示出在名称中带有某个指定字符的对象, 则通过设定选项pattern 来实现。如:ls(pat = "m"),会显示在名称中以m开头的对象
  5. 运行函数ls.str()将会展示内存中所有对象的详细信息
  6. 要在内存中删除某个对象, 可利用函数rm: 运行rm(x)将会删除对象x,运行rm(x,y) 将会删除对象xy, 而运行rm(list=ls())则会删除内存中的所有对象. 在ls()函数中的一些选项同样也可以运用到rm中来, 以选择的删除一些对象, 如: rm(list=ls(pat=”^m”))


二、R的数据操作

1. 对象

  1. 在R中,操作的内容称作对象(objects),对象的刻画主要通过:1)名称和内容;2)属性
  2. 所有的对象都有两个内在属性: 类型长度。 类型是对象元素的基本种类,共有四种: 数值型字符型复数型逻辑型 ;长度是对象中元素的数目。对象的类型和长度可以分别通过函数mode和length得到。
  3. 对象的类型是可以通过as.something这种形式的函数可以完成转换的。
  4. 比较两个对象时,需要使用identicalall.equal函数,他们两者之间存在差别:identical比较数据的内在关系, 如果对象是严格相同的返回TRUE, 否则返回FALSEall.equal用来判断两个对象是否“ 近似相等” , 返回结果为TRUE或者对二者差异的描述。 后一个函数在比较数值型变量时考虑到了计算过程中的近似。具体示例如下:

    1. 0.9 == (1 - 0.1)
    2. identical(0.9, 1 - 0.1)
    3. all.equal(0.9, 1 - 0.1)
    4. 0.9 == (1.1 - 0.2)
    5. identical(0.9, 1.1 - 0.2)
    6. all.equal(0.9, 1.1 - 0.2)
    7. all.equal(0.9, 1.1 - 0.2, tolerance = 1e-16)

    三、R绘图

  5. 有两种绘图函数: 高级绘图函数(high-level plotting functions) 创建一个新的图形, 低级绘图函数(low-level plotting functions) 在现存的图形上添加元素。 绘图参数(graphical parameters) 控制绘图选项, 可以使用缺省值或者用函数par修改。

  6. 绘图设备的切换选择:

    1. dev.list() #显示当前绘图设备列表
    2. dev.cur() #显示当前所在绘图设备
    3. dev.set() #切换绘图设备
    4. dev.off() #关闭某个绘图设备
  7. 图形设备面板的分割

    • 函数split.screen分割当前的绘图设备;erase.screen()删除最后绘制的图形。
    • 函数layout把当前的图形窗口分割为多个部份, 图形将一次显示在各部分中。 它主要的自变量是一个元素都是整数值的矩阵, 元素指示子窗口(\sub-windows”) 的编号。如:layout(matrix(1:4, 2, 2)),把设备划分为4个相等的部分。layout.show查看创建的分割。