数值和字符处理函数
取相反数abs(-4)---4
求平方差:sqrt(4)---2
取整函数:
1)向上取整:ceiling(3.45)---4
2)向下取整:floor(3.475)---3
3)向零的方向截取的参数的整数部分:trunc(5.99)----5
4)指定要处理的参数,还有要保留的参数:round(3.475,digits=2)----3.48
5)signif(3.47,digits=2)----3.4
abs(-2)
sqrt(25)
ceiling(3.475)
ceiling(3.01)
floor(3.475)
floor(3.88)
trunc(5.01)
trunc(5.99)
trunc(-1.88)
trunc(-1.3)
round(3.475,digits = 2)
round(3.014,digits = 2)
signif(3.475,digits = 2)
cos(2)
#以base=2为底,求2的对数
log(2,base = 2)
#以e为底的自然对数
log(2.7128)
#以10为底的对数
log10(10)
#以e为底的指数函数
exp(2.306)
> abs(-2)
[1] 2
> sqrt(25)
[1] 5
> ceiling(3.475)
[1] 4
> ceiling(3.01)
[1] 4
> floor(3.475)
[1] 3
> floor(3.88)
[1] 3
> trunc(5.01)
[1] 5
> trunc(5.99)
[1] 5
> trunc(-1.88)
[1] -1
> trunc(-1.3)
[1] -1
> round(3.475,digits = 2)
[1] 3.48
> round(3.014,digits = 2)
[1] 3.01
> signif(3.475,digits = 2)
[1] 3.5
> cos(2)
[1] -0.4161468
> log(2,base = 2)
[1] 1
> log(2.7128)
[1] 0.9979813
> log10(10)
[1] 1
> exp(2.306)
[1] 10.03421
对数据做变换时这些数据的主要用途;数学和统计函数是用来处理数值型数据的;
字符处理函数:
x<-c("ab","ac3","sdfs")
#计算x下标为3的字符个数
nchar(x[3])
#提取字符串子串substr()
substr("adfsdfs",2,4)
y<-"sdfagadgd"
#字符串的替换
substr(y,2,4)<-"222"
y
#模式收索
grep("A",c("d","A","d"),fixed = TRUE)
#连接
paste("x",1:3,sep = "")
paste("x",1:3,sep = "M")
paste("Today is ",date())
#转换成大写函数
toupper("abc")
#转换成小写函数
tolower("ASD")
length(x)
seq(1,10,2)
#重复
rep(1:10,3)
#cut()将一个连续变量分隔为n个水平的因子
#将10分隔为5个水平的因子
cut(10,5)
firstname<-"Jane"
#拼接字符串
cat("Hello",firstname,"\n")
函数应用实例:
apply:可以将任意函数都应用到矩阵,数组,数据框和任何维度上;
> a<-5
> sqrt(a)
[1] 2.236068
> b<-c(1,243,5,654,2,99)
> round(b) #round()默认digits = 0
[1] 1 243 5 654 2 99
> #runif(12)他是从0-1中取值,一共取12个,分成3行3列的矩阵
> c<-matrix(runif(12),nrow = 3)
> #查询runif的使用方法> help(runif)
> c
[,1] [,2] [,3] [,4]
[1,] 0.40609713 0.5015378 0.007922844 0.3852485
[2,] 0.01424861 0.3715266 0.836512059 0.9515306
[3,] 0.11044779 0.8059156 0.376839179 0.4756742
> log(c)
[,1] [,2] [,3] [,4]
[1,] -0.9011629 -0.6900763 -4.8380051 -0.95386661
[2,] -4.2510957 -0.9901347 -0.1785143 -0.04968346
[3,] -2.2032123 -0.2157763 -0.9759368 -0.74302203
> #runif(30,-3,3),nrow=6:在-3到3之间取30个数,用六行表示出来
> newData<-matrix(runif(30,-3,3),6)
> newData
[,1] [,2] [,3] [,4] [,5]
[1,] 0.3125628 -1.691902 -2.0121431 1.8368722 -1.1242617
[2,] 2.6082980 1.117421 1.2883664 -2.3071726 -0.3170817
[3,] 2.1806175 2.756292 0.1689945 1.1520865 1.9526344
[4,] -1.4405131 -1.443573 -1.5917119 -2.8692826 -1.0092272
[5,] 1.1261990 -0.187440 -2.6134100 -0.8317397 -2.1358490
[6,] -0.3125565 -1.071963 1.0545810 1.3936803 -1.1944755
> #求各行均值
> apply(newData, 1,mean)
[1] -0.53577445 0.47796618 1.64212503 -1.67086159 -0.92844796 -0.02614668
> #求各列均值
> apply(newData,2,mean)
[1] 0.74576794 -0.08686085 -0.61755387 -0.27092599 -0.63804345
> #结尾均值
> #结尾均值就是基于中间的60%,最高的和最低的20%统统被忽略
> #第三个参数,可以带函数名,也可以是任意的R函数,也可以是自定义函数
> #apply可以把函数应用到数组的某一个维度上
> apply(newData,2,mean,trim=0.2)
[1] -1.1738655 1.1710025 -0.4913028 1.7737582 -0.2801271