作为一门高级的数据分析语言,R语言不仅具有其它高级语言的自带大量内嵌函数的方便特性,而且它的一些函数更侧重于数据统计分析,成为越来越多的数据分析人员首选语言。下面就来列一下R中的一些常用函数。与matlab一样,作为第二个以向量式运算作为主要运算方式的编程语言,R的一些函数主要是针对向量的。
作用于向量
>x <- 1:10
>sum(x) #对x中的元素求和[1] 55
>length(x) #返回x的长度[1] 10
>prod(x) #求x中所有元素的连乘积[1] 3628800
> prod(2:10) #求10的阶乘[1] 3628800
>max(x) #求x的最大值[1] 10
>min(x) #求x的最小值[1] 1
>which.max(x) #返回x中最大值的下标[1] 10
>range(x) #返回x的最值[1] 1 10
>mean(x) #返回x的均值[1] 5.5
>median(x) #返回x的中位数[1] 5.5
>var(x) #返回x的方差[1] 9.166667[1] 3.02765
>rev(x) #对x中元素取逆序[1] 10 9 8 7 6 5 4 3 2 1
y <- c(2,1,4,3)
[1] 1 2 3 4
> cumsum(x) #求累积和,返回一个向量,它的第i个元素是从x[1]到x[i]的和,这点与matlab一样[1] 1 3 6 10 15 21 28 36 45 55
>cumprod(x) #从左到右依次求累积[1] 1 2 6 24 120 720 5040[8] 40320 362880 3628800
>cummin(x) #从左到右求累积最小值[1] 1 1 1 1 1 1 1 1 1 1
>match(x,y) #返回y中与x中相同的元素在y中的位置[1] 2 1 4 3 NA NA NA NA NA NA
矩阵拼接
>a <- matrix(c(1:12),2,6)
>rbind(a,b) #矩阵按行拼接[,1] [,2] [,3] [,4] [,5] [,6]Error in cbind(a, b) : number of rows of matrices must match (see arg 2)显然,只有列数相同才能按行拼接,行数相同才能按列拼接。
缺失值处理
> z <- c(1,2,3,NA)[1] TRUE TRUE TRUE FALSE
没有缺失就标记为TRUE,否则标记为FALSE。
>ind
[1] TRUE TRUE TRUE FALSE
> z[ind][1] 1 2 3
下面用na.omit()直接去掉缺失值,返回去掉缺失值后的向量。
[1] 1 2 3 去除缺失值后attr(,"na.action")
其它函数
> w <- 100000[1] "1e+05"
>Sys.time() #返回系统时间[1] "2017-05-30 19:25:48 CST"
>format(Sys.time(),"%Y-%m-%d") #返回标准时间格式[1] "2017-02-22"[1] "2017-05-30 星期二"
>ls() #查看内存中所有变量[1] "a" "b" "x" "y" "z"Error: object 'x' not found
清除内存所有变量
>rm(list = ls())
当然了,我们还可以自定义函数,现以一个小例子说明R中自定义函数的格式,比如我么要对一个数组求和:[1] 5050
字符串处理函数
连接
> paste0('hello',' world!')[1] "hello world!"
截取
substr(string,n1,n2),截取n1位置开头,n2位置结束之间字符串。> substr('123456',3,4)[1] "34"
当然了,关于R语言正则表达式函数有很多,也很复杂,需要用时再去查找是一个好的选择。
有了自定义函数,我们可以利用R的各种语法规则与内嵌函数,编写出功能更强大的函数供自己使用。R的函数太多了,这里仅仅列出一些常用的,更多的是在平时的总结!