1、1. 获取帮助 help.start() 开启帮助文档help(solve) 显示某命令的帮助信息,或者?solve对于由特殊字符指定的功能,这些参数必须用单引号或双引号括起来,使之成为一个“字符串”, 如 help(“)与某个主题相关的例子通常可以用下面的命令得到 example(topic)2. 命令简介R 对大小写是敏感的;名称不能以数字开始;基本的命令由表达式或者赋值语句组成。如果一个表达式被作为一条命令给出,它将被求值、打印而表达式的值并不被保存。一个赋值语句同样对表达式求值之后把表达式的值传给一个变量,不过并不会自动的被打印出来;命令由分号(;) 来分隔,或者另起新行;基本命令可以
2、由花括号(f 和 g)合并为一组复合表达式;注释几乎可以被放在任何地方,只要是以井号( # )开始,到行末结束;如果一个命令在行莫仍没有结束,R 将会给出一个不同的提示符,默认的是 +。3. 命令文件的执行和输出转向到文件如果命令存储于一个外部文件中,比如工作目录 work 中的 commands.R,他们可以随时在 R 的任务中被执行 source(“commands.R“)在 Windows 中 Source 也可以由 File 菜单执行。函数 sink, sink(“record.lis“)将把所有后续的输出由终端转向一个外部文件,record.lis。命令 sink() 将把信息重新恢
3、复到终端上。4. 数据的保持与对象的清除R 所创建、操作的实体是对象。对象可以是变量、数组、字符串、函数以及由这些元素组成的其它结构; objects() 用来显示目前存储在 R 中的对象的名字。而当前存储的所有对象的组合被称为 workspace;清除对象可以使用 rm 命令: rm(x, y, z, ink, junk, temp, foo, bar)所有在一个 R 任务中被创建的对象都可以在文件中被永久保存,并在其它的 R 任务中被使用。在每个 R 任务结束时用户都有机会保存当前有效的所有对象。如果用户这样做的话,对象将被写入当前目录一个名为.RData。当 R 被再次启动时 R 会从这
4、个文件中再载入workspace。同时相关的命令记录也被载入。所以,推荐大家在用 R 进行不同的分析时分别使用不同的工作目录。5. 基本数据结构数值型(numeric) 1,1.2,3.1415926复数型(complex) 1+2i字符型(character) A/ “hello world!”逻辑型(logical) TRUE / FALSE6. 基本数据对象 向量(vector), 见下节矩阵(matrix): 更一般的说数组是向量在多维情况下的一般形式。事实上它们是可以被两个或更多的指标索引的向量,并且以特定的方式被打印出来。因子(factors) 提供了一种处理分类数据的更简介的方式
5、。列表(list): 是向量的一种一般形式,并不需要保证其中的元素都是相同的类型,而且其中的元素经常是向量和列表本身。数据框(data frame):是一种与矩阵相似的结构,其中的列可以是不同的数据类型。可以把数据框看作一种数据“矩阵“,它的每行是一个观测单位,而且(可能)同时包含数值型和分类的变量。函数( function):能够在 R 的 workspace 中存储的对象。我们可以通过函数来扩展 R 的功能。二 简单操作,数值与向量2.1 向量与赋值R 对命名了的数据结构进行操作。最简单的数据结构是数字向量;如, x assign(“x“, c(10.4, 5.6, 3.1, 6.4, 2
6、1.7) 也可以写成: c(10.4, 5.6, 3.1, 6.4, 21.7) - x如果一个表达式被当作一个完整的命令,它的值将被打印到终端但不被储存。单独输入 x 则会将值打印出来。也可以打印倒数: 1/x y v s5 temp 13逻辑操作符包括, =,完全相等=和不等于!=,与或非分别为 在打印时用双引号 (有时不用引号)。R 使用与 C 语言风格基本相同的转义符, 所以输入打印的也是, 输入“ 打印引号“, n: 换行, t: tab, b: 回格。字符向量可以通过函数 c()连接 ;paste()可以接受任意个参数,并从它们中逐个取出字符并连成字符串,形成的字符串的个数与参数中
7、最长字符串的长度相同。如果参数中包含数字的话,数字将被强制转化为字符串。在默认情况下,参数中的各字符串是被一个空格分隔的,不过通过参数 sep=string 用户可以把它更改为其他字符串,包括空字符串。例如: labs y (x+1)(!is.na(x) & x0 - z 表示创建一个对象 z,其中的元素由向量 x+1 中与 x 中的非缺失值和正数对应的向量组成。2. 正整数的向量 x6 是 x 的第六个元素 x1:10 选取了 x 的前 10 个元素(假设 x 的长度不小于 10)。 c(“x“,“y“)rep(c(1,2,2,1), times=4) 产生了一个字符向量,长度为 16,由“
8、x“, “y“, “y“, “x“重复 4 次而组成。3. 负整数的向量 y fruit names(fruit) lunch xis.na(x) yy y e e3 alpha attr(z,“dim“) pf pf 打印出来1 四川 湖南 江苏 四川 四川 四川 湖南 江苏 湖南 江苏Levels: 湖南 江苏 四川函数 levels()可以用来观察因子中有多少不同的 levels。假如我们拥有这些省份考生的分数: score smeans smeans湖南 江苏 四川 85.66667 91.00000 87.50000 再例如,下面命令会给出各组的 length tapply(scor
9、e,pf,length)湖南 江苏 四川 3 3 4函数 ordered()可以创建有序因子 ordered(province)1 四川 湖南 江苏 四川 四川 四川 湖南 江苏 湖南 江苏Levels: 湖南 dim(z) array(1:20, dim=c(4,5) matrix(1:24, 3,4)数据向量中的值被赋给数组中的值时,将遵循与 FORTRAN 相同的原则“主列顺序“,即第一个下标变化的最快,最后的下标变化最慢。数组的运算数组可以在算数表达式中使用,结果也是一个数组,这个数组由数据向量逐个元素的运算后组成,通常参与运算的对象应当具有相同的 dim 属性。5.2 数组的索引和数
10、组的子块数组中的单个元素可以通过下标来指定,下标由逗号分隔,写在括号内。我们可以通过在下标的位置给出一个索引向量来指定一个数组的子块,不过如果在任何一个索引位置上给出空的索引向量,则相当于选取了这个下标的全部范围。如 a2,,a,3,等5.3 索引数组除了索引向量,还可以使用索引数组来指定数组的某些元素。例如:有 4X5 的数组 a,若要得到 a 中的 a1,3, a2,2 和 a3,1这三个元素,可以生成索引向量 i,然后用 ai得到它们。 a i i,1 ,21, 1 32, 2 23, 3 1 ai1 9 6 3 ai ab ab - outer(a, b, “*“)其中的乘法操作可以由
11、任意一个双变量的函数替代。广义转置:函数 t(A),或 aperm(A, c(2,1);获取行数/列数:nrow(A)和 ncol(A)分别返回矩阵 A 的行数和列数。矩阵乘法:操作符为%*%;交叉乘积(cross product):crossprod(X,Y)等同于 t(X) %*% y,crossprod(X) 等价于crossprod(X, X);diag(v):如果 v 是向量,diag(v)返回一个由 v 的元素为对角元素的对角矩阵。如果 v 为矩阵,diag(v)返回一个由 v 主对角元素组成的向量。如果 v 只是一个数值,那么 diag(v)是一个 vXv 的单位矩阵。特征值和特征向量:eigen (Sm)。这个函数的结果是由名为 values 和 vectors 的两部分组成的列表。如果只是需要特征值:eigen(Sm)$values最小二乘拟合即 QR 分解:lsfit(), qr()。强制转换为向量:as.vector(),或者直接 c().