数值和字符处理函数 取相反数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 ———————————————— 版权声明:本文为CSDN博主「幸运六叶草」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/AnneQiQi/article/details/51494264 |
|