R语言学习-常用统计函数
函数名 | 作用 | 示例 |
mean(x) | 求平均值 | > data <- c(1:10) > mean(data) [1] 5.5 |
median(x) |
求中位数 |
> x <- c(1,2,2,3,3,3,4) > median(x) [1] 3 |
sd(x) | 求标准差 | > x <- c(1,2,3) > sd(x) [1] 1 |
var(x) |
求方差(用n-1做分母) |
> x <- c(1,2,3) > var(x) [1] 1 |
range(x) | 求值域 |
> x <- c(1,2,10,12) > range(x) [1] 1 12 |
sum(x) | 求和 |
> x <- c(1,2,10,12) > sum(x) [1] 25 |
min(x) |
求最小值 |
> x <- c(1,2,10,12) > min(x) [1] 1 |
max(x) |
求最大值 |
> x <- c(1,2,10,12) > max(x) [1] 12 |
which.max(x) | 返回x中最大元素的下标 | > x <- c(1,2,4,6,3) > which.max(x) [1] 4 |
rev(x) | 对x中的元素取逆序 | > x <- c(1,2,4,6,3) > rev(x) [1] 3 6 4 2 1 |
sort(x) | 将x中的元素按升序排列 | > x <- c(1,2,4,6,3) > sort(x) [1] 1 2 3 4 6 |
cumsum(x) | 求累积和,返回一个向量,它的第i个元素是从x[1]到x[i]的和 | > x <- c(1,2,4,6,3) > cumsum(x) [1] 1 3 7 13 16 |
cumprod(x) | 求累积(从左向右)乘积 | > x <- c(1,2,4,6,3) > cumprod(x) [1] 1 2 8 48 144 |
cummin(x) | 求累计最小值 | > x <- c(1,2,-4,6,3) > cummin(x) [1] 1 1 -4 -4 -4 |
cummax(x) | 求累计最大值 | > x <- c(1,2,4,6,3) > cummax(x) [1] 1 2 4 6 6 > x <- c(1,2,-4,6,3) > cummax(x) [1] 1 2 2 6 6 |
pmin(x,y) | 返回一个向量,它的第i个元素是x[i], y[i], . . .中最小值 | > x <- c(1,2,4,6,3) > y <- c(1,2,3,4,5) > pmin(x,y) [1] 1 2 3 4 3 |
pmax(x,y) | 返回一个向量,它的第i个元素是x[i], y[i], . . .中最大值 | > x <- c(1,2,4,6,3) > y <- c(1,2,3,4,5) > pmax(x,y) [1] 1 2 4 6 5 |
match(x, y) | 返回一个和x的长度相同的向量,表示x中与y中元素相同的元素在y中的位置(没有则返回NA),如果y中有多个相同的元素则返回第一个匹配到的元素 | > x <- c(1,2,4,6,3,5) > y <- c(1,2,3,4,5,3,6,6) > match(x,y) [1] 1 2 4 7 3 5 |
quantile(x, probs) | 采用加权平均的算法,求分位数。x为待求分位数的数值型向量,probs是一个由[0,1]的概率值组成的数值型向量 | x <- c(1:10) quantile(x,0) 0%是第一位(1+(10-1)*0%)=1,值为1 quantile(x,0.25) 25%是第3.25位(1+(10-1)*0.25)=13/4,值为:3*0.75 +4*0.25=3.25(距离3较近所以权重大,为0.75,4的权重为0.25) quantile(x,0.6) 60%是第6.4位(1+(10-1)*0.6)=6.4,值为:6*0.6+7*0.4=6.4(距离6较近所以权重大为0.6,7的权重为0.4) |
fivenum() | 返回五个数据:最小值、下四分位数、中位数、上四分位数、最大值 | > x <- c(1,2,4,3,5) > fivenum(x) [1] 1 2 3 4 5 > x <- c(1,2,4,3,5,7,6) > fivenum(x) [1] 1.0 2.5 4.0 5.5 7.0 |
scale(x, center=TRUE,scale=TRUE) |
以数据对象x按列进行中心化或标准化,center=TRUE表示数据中心化,scale=TRUE表示数据标准化 数据的中心化是指数据集中的各项数据减去数据集的均值 数据的标准化是指中心化之后的数据在除以数据集的标准差,即数据集中的各项数据减去数据集的均值再除以数据集的标准差 |
> x <- c(1:5) > scale(x,center=TRUE,scale = FALSE) [,1] [1,] -2 [2,] -1 [3,] 0 [4,] 1 [5,] 2 attr(,"scaled:center") [1] 3 > scale(x,center=TRUE,scale = TRUE) [,1] [1,] -1.2649111 [2,] -0.6324555 [3,] 0.0000000 [4,] 0.6324555 [5,] 1.2649111 attr(,"scaled:center") [1] 3 attr(,"scaled:scale") [1] 1.581139 center和scale默认为真 |