函数是R语言中处理数据的基石,大致可以分为数值处理函数与字符处理函数两大类,数值处理函数又可以分为数学函数、统计函数、概率函数。本节归纳了R语言函数及其用法。
1.数值函数
1.1.数学函数
|
|
---|---|
abs(x) | 求x的绝对值 例如abs(-8),则返回的值为8 |
sqrt(x) | 求x的平方根 l例如sqrt(16),返回值为4,等价于16^(0.5) |
ceiling(x) | 向上取整,不小于x的整数 例如ceiling(1.23),返回值为2 |
floor(x) | 向下取整,不大于x的整数 例如floor(1.23),返回值为1 |
trunc(x) | 向0的方向取整 trunc(3.69)返回值为3,trunc(-3.69)返回值为-3 |
round(x,digits=n) | 将x舍为指定位数 round(1.2346,3)返回值为1.235 |
signif(x,digits=n) | 将x舍入为指定有效位数 signif(1.2346,3)返回值为1.23 |
sin(x)、cos(x)、tan(x) | 正弦、余弦、正切函数 |
asin(x)、acos(x)、atan(x) | 反正弦、反余弦、反正切函数 |
sinh(x)、cosh(x)、tanh(x) | 双曲正弦、双曲余弦、双曲正切函数 |
log(x,base=n) | 求x以n为底的对数 log(x)求x的自然对数 |
exp(x) | 以自然常数e为底的指数函数 |
这些函数可以应用到标量(单独的数值)上,也可以应用于数值向量、矩阵、数据框中,此时会作用于没一个独立的数值上。
> sqrt(16)
[1] 4
> sqrt(c(1,4,9,16,25))
[1] 1 2 3 4 5
> data<-matrix(c(1,4,9,16),2,2)
> data
[,1] [,2]
[1,] 1 9
[2,] 4 16
> sqrt(data)
[,1] [,2]
[1,] 1 3
[2,] 2 4
1.2.统计函数
|
|
---|---|
mean(x) | 均值 mean(c(1,2,3,4,5))返回值为3 |
median(x) | 中位数 median(c(1,2,3,4,5)返回值为3 median(c(1,2,3,4))返回值为2.5 |
sd(x) | 标准差 sd(c(1,2,3,4,5))返回值为1.581139 |
var(x) | 方差 var(c(1,2,3,4,5))返回值为2.5 |
mad(x) | 绝对中位差 mad(c(1,2,3,4,5))返回值为1.4826 |
quantile(x,probs) | 求分位数,其中 x 为待求分位数的数值型向量,probs 为一个由[0,1]之间的概率值组成的数值向量 |
range(x) | 求值域 x<-(1,2,3,4,5),range(x)返回值为c(1,5) |
sum(x) | 求和 sum(c(1,2,3,4,5))返回值为15 |
max(x) | 求最大值 max(c(1,2,3,4,5))返回值为5 |
min(x) | 求最小值 min(c(1,2,3,4,5))返回值为1 |
diff(x,lag=n) | 求滞后差分,lag为滞后阶数,默认为1 |
scale(x,center=TRUE,scale=TRUE) | 为数据对象x按列进行中心化(center=TRUE)或者标准化(center=TRUE,scale=TRUE) |
1.3.概率函数
函数缩写 | 名称 | 函数缩写 | 名称 |
---|---|---|---|
beta | 贝塔分布 | logis | 逻辑分布 |
binom | 二项分布 | multinom | 多项分布 |
cauchy | 柯西分布 | nbinom | 负二项分布 |
chisq | 非中心卡方分布 | norm | 正态分布 |
exp | 指数分布 | pois | 泊松分布 |
f | F分布 | signrank | Wilcoxon符号秩分布 |
gamma | 伽马分布 | t | t分布 |
gemo | 几何分布 | unif | 均匀分布 |
hyper | 超几何分布 | weibull | Weibull分布 |
lonrm | 对数正态分布 | wilcox | Wilcoxon |
2.字符函数
|
|
---|---|
nchar(x) | 计算x中字符数量 |
substr(x,start,stop) | 提取或替换一个向量中的子串 |
grep(pattern,x,ignore.case=FALSE,fixed=FALSE) | 在 x 中搜索某种模式。若 fixed=FALSE,则 pattern 为一个正则表达式。若fixed=TRUE,则 pattern 为一个文本字符串。返回值为匹配的下标 grep(“A”,c(“b”,“A”,“c”),fixed=TRUE)返回值为 2 |
sub(pattern, replacement, x, ignore.case=FALSE, fixed=FALSE) | 在 x 中搜索 pattern,并以文本 replacement 将其替换。若 fixed=FALSE,则pattern 为一个正则表达式。若 fixed=TRUE,则 pattern 为一个文本字符串。 sub("\s",".",“Hello There”)返回值为 Hello.There。注意,"\s"是一个用来查找空白的正则表达式;使用"\s"而不用""的原因是,后者是 R中的转义字符 |
strsplit(x, split, fixed=FALSE) | 在 split 处分割字符向量 x 中的元素。若 fixed=FALSE,则 pattern 为一个正则表达式。若 fixed=TRUE,则 pattern 为一个文本字符串 y <- strsplit(“abc”, “”)将返回一个含有 1个成分、3个元素的列表,包含的内容为"a" “b” “c” unlist(y)[2]和 sapply(y, “[”, 2)均会返回"b" |
paste(…, sep="") | 连接字符串,分隔符为 sep paste(“x”, 1:3,sep="")返回值为 c(“x1”, “x2”, “x3”) paste(“x”,1:3,sep=“M”)返回值为 c(“xM1”,“xM2” “xM3”) paste(“Today is”, date())返回值为 Today is Thu Jun 25 14:17:32 2011 |
toupper(x) | 大写转换 toupper(“abc”)返回值为"ABC" |
tolower(x) | 小写转换 tolower(“ABC”)返回值为"abc" |
3.其他函数
|
|
---|---|
length(x) | 求对象 x 的长度 ,x <- c(2, 5, 6, 9) ,length(x)返回值为 4 |
seq(from, to, by) | 生成一个序列 ,indices <- seq(1,10,2) ,indices 的值为 c(1, 3, 5, 7, 9) |
rep(x, n) | 将 x 重复 n 次 ,y <- rep(1:3, 2) ,y 的值为 c(1, 2, 3, 1, 2, 3) |
cut(x, n) | 将连续型变量 x 分割为有着 n 个水平的因子,使用选项 ordered_result = TRUE 以创建一个有序型因子 |
pretty(x, n) | 创建美观的分割点。通过选取 n+1 个等间距的取整值,将一个连续型变量 x分割为 n 个区间。 |
cat(… , file =“myfile”, append =FALSE) | 连接…中的对象,并将其输出到屏幕上或文件中(如果声明了一个的话) firstname <- c(“Jane”) cat(“Hello” ,firstname, “\n”) |
特别注明:本文属于R语言学习笔记,不以盈利为目的,纯手工码字不容易,若整理的笔记中,对您有所助益,麻烦点个赞或者收藏,万分感谢!如有构成侵权的地方,请联系作者删除,谢谢合作!