|
在R中有很多用来处理数据的函数,前面我们已经看到了最简单的一个函
数c,它用来连接列在圆括号中的对象。如:
> c(1:5, seq(10, 11, 0.2))
[1] 1.0 2.0 3.0 4.0 5.0 10.0 10.2 10.4 10.6 10.8 11.0
向量可以进行那些常规的算术运算:
> x <- 1:4
> y <- rep(1, 4)
> z <- x + y
> z
[1] 2 3 4 5
不同长度的向量可以相加,这种情况下最短的向量将被循环使用。例
如:
> x <- 1:4
> y <- 1:2
> z <- x + y
> z
[1] 2 4 4 6
> x <- 1:3
> y <- 1:2
> z <- x + y
Warning message: longer object length
is not a multiple of shorter object length in: x + y
> z
[1] 2 4 4
注意R返回了一个警告消息而不是一个错误消息,因此这个操作实际上是
被执行了的。如果我们想要对于一个向量中所有的元素加(或乘)相同的数
值:
> x <- 1:4
> a <- 10
> z <- a * x
> z
[1] 10 20 30 40
R中用来处理数据的函数太多了而不能全部列在这里。读者可以找到所
有的基本数学函数(log, exp, log10, log2, sin, cos, tan, asin, acos, atan,
abs, sqrt, . . . ), 专业函数(gamma, digamma, beta, besselI, . . . ),同样包括各
种统计学中有用的函数。下表中列出了一部分函数:
sum(x) 对x中的元素求和
prod(x) 对x中的元素求连乘积
max(x) x中元素的最大值
min(x) x中元素的最小值
which.max(x) 返回x中最大元素的下标
which.min(x) 返回x中最小元素的下标
range(x) 与c(min(x), max(x))作用相同
length(x) x中元素的数目
mean(x) x中元素的均值
median(x) x中元素的中位数
var(x) or cov(x) x中元素的的方差(用n ¡ 1做分母);如果x是一个矩阵或者一
个数据框,将计算协方差阵
cor(x) 如果x是一个矩阵或者一个数据框则计算相关系数矩阵(如
果x是一个向量则结果是1)
var(x, y) or cov(x, y) x和y的协方差,如果是矩阵或数据框则计算x和y对应列的协方
差
cor(x, y) x和y的线性相关系数,如果是矩阵或者数据框则计算相关系数
矩阵。
这些函数一般返回标量(即为长度为1的向量),只有range返回一个长度
为2的向量,var, cov, 和cor可能会返回一个矩阵。下面的函数返回更复杂的
结果。
round(x, n) 将x中的元素四舍五入到小数点后n位
rev(x) 对x中的元素取逆序
sort(x) 将x中的元素按升序排列;要按降序排列可以用命令rev(sort(x))
rank(x) 返回x中元素的秩
log(x, base) 计算以base为底的x的对数值
scale(x) 如果x是一个矩阵, 则中心化和标准化数据; 若只进行中心化
则使用选项scale=FALSE, 只进行标准化则center=FALSE( 缺省值
是center=TRUE, scale=TRUE)
pmin(x,y,...) 返回一个向量,它的第i个元素是x[i], y[i], . . . 中最小值
pmax(x,y,...) 同上,取最大值
cumsum(x) 返回一个向量,它的第i个元素是从x[1]到x[i]的和
cumprod(x) 同上,取乘积
cummin(x) 同上,取最小值
cummax(x) 同上,取最大值
match(x, y) 返回一个和x的长度相同的向量,表示x中与y中元素相同的元素在y中
的位置(没有则返回NA)
which(x == a) 返回一个包含x符合条件(当比较运算结果为真(TRUE)的下标的向
量,在这个结果向量中数值i说明x[i] == a(这个函数的参数必须是
逻辑型变量)
choose(n, k) 计算从n个样本中选取k个的组合数
na.omit(x) 忽略有缺失值(NA)的观察数据(如果x是矩阵或数据框则忽略相应的
行)
na.fail(x) 如果x包含至少一个NA则返回一个错误消息
unique(x) 如果x是一个向量或者数据框,则返回一个类似的对象但是去掉所有重
复的元素(对于重复的元素只取一个)
table(x) 返回一个表格,给出x中重复元素的个数列表(尤其对于整数型或者因子
型变量)
table(x, y) x与y的列联表
subset(x, ...) 返回x中的一个满足特定条件...的子集,该条件通常是进行比较运
算:x$V1 < 10;如果x是数据框,选项select给出要保留的变量(或
者用负号表示去掉)
sample(x, size) 从x中无放回抽取size个样本,选项replace = TRUE表示有放回的抽样 |
|