R内置函数用法解析
R中提供了大量的数学函数、统计函数和特殊函数, 可以打开R的HTML帮助页面, 进入“Search Enging & Keywords”链接, 查看其中与算术、数学、优化、线性代数等有关的专题。http://127.0.0.1:19353/doc/html/Search.html
R基础包
library(help = "base")
也可以直接help ,查看更多用法
help(package=base)
# 查看统计包 help(package=stats)
数学函数
R提供了各种数学函数来执行数学计算。这些数学函数对查找绝对值, 平方值和更多计算非常有用。在R中, 使用了以下功能:
S.没有 | Function | Description | Example |
---|---|---|---|
1. | abs(x) | 它返回输入x的绝对值。 | x <–4 打印(绝对(x)) 输出量 [1] 4 |
2. | sqrt(x) | 它返回输入x的平方根。 | x <-4 打印(sqrt(x)) 输出量 [1] 2 |
3. | ceiling(x) | 它返回大于或等于x的最小整数。 | x <-4.5 打印(天花板(x)) 输出量 [1] 5 |
4. | floor(x) | 它返回小于或等于x的最大整数。 | x <-2.5 打印(地板(x)) 输出量 [1] 2 |
5. | trunc(x) | 它返回输入x的截断值。 | x <-c(1.2, 2.5, 8.1) 打印(trunc(x)) 输出量 [1] 1 2 8 |
6. | 回合(x, digits = n) | 它返回输入x的舍入值。 | x <–4 打印(绝对(x)) 输出量 4 |
7. | cos(x), sin(x), tan(x) | 它返回输入x的cos(x), sin(x)值。 | x <-4 打印(cos(x)) 打印(sin(x)) 打印(棕褐色(x)) 输出量 [1] -06536436 [2] -0.7568025 [3] 1.157821 |
8. | log(x) | 它返回输入x的自然对数。 | x <-4 打印(log(x)) 输出量 [1] 1.386294 |
9. | log10(x) | 它返回输入x的公共对数。 | x <-4 打印(log10(x)) 输出量 [1] 0.60206 |
10. | exp(x) | 它返回指数。 | x <-4 打印(exp(x)) 输出量 [1] 54.59815 |
![](https://img2020.cnblogs.com/blog/1570232/202104/1570232-20210418204203730-367206682.png)
字符串功能
R提供了各种字符串函数来执行任务。这些字符串函数使我们能够从字符串, 搜索模式等中提取子字符串。R中包含以下字符串函数:
S.没有 | Function | Description | Example |
---|---|---|---|
1. | substr(x, 开始= n1, 停止= n2) | 它用于提取字符向量中的子字符串。 | 一个<-” 987654321″ substr(a, 3, 3) 输出量 [1]” 3″ |
2. | grep(pattern, x, ignore.case = FALSE, fixed = FALSE) | 它在x中搜索模式。 | st1 <-c(‘abcd’, ‘bdcd’, ‘abcdabcd’) 模式<-‘^ abc’ 打印(grep(pattern, st1)) 输出量 [1] 1 3 |
3. | sub(模式, 替换, x, ignore.case = FALSE, fixed = FALSE) | 它在x中找到模式并将其替换为替换(新)文本。 | st1 <-“英格兰很美, 但没有欧盟的一部分” sub(” England’, ” UK”, st1) 输出量 [1]”英国很美, 但不是欧盟的一部分” |
4. | 粘贴(…, sep =””) | 在使用sep字符串分隔字符串之后, 它将字符串连接起来。 | 粘贴(‘一个’, 2, ‘三个’, 4, ‘五个’) 输出量 [1]一2三4五 |
5. | strsplit(x, 拆分) | 它在分割点分割字符向量x的元素。 | a <-“拆分所有字符” 打印(strsplit(a, “”)) 输出量 [[1] [1]”拆分””全部”” the”” character” |
6. | tolower(x) | 用于将字符串转换为小写。 | st1 <-” shuBHAm” 打印(tolower(st1)) 输出量 [1] shubham |
7. | toupper(x) | 用于将字符串转换为大写。 | st1 <-” shuBHAm” 打印(toupper(st1)) 输出量 [1] SHUBHAM |
![](https://img2020.cnblogs.com/blog/1570232/202104/1570232-20210418204418324-906220282.png)
统计概率函数
R提供了各种统计概率函数来执行统计任务。这些统计功能对于查找法线密度, 法线分位数和更多计算非常有用。在R中, 使用了以下功能:
S.没有 | Function | Description | Example |
---|---|---|---|
1. | dnorm(x, m = 0, sd = 1, log = False) | 它用于查找每个点到给定的均值和标准差的概率分布的高度 | 一个<-seq(-7, 7, by = 0.1) b <-dnorm(a, 平均值= 2.5, sd = 0.5) png(file =” dnorm.png”) 情节(x, y) dev.off() |
2. | pnorm(q, m = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) | 它用于查找小于给定值的正态分布随机数的概率。 | 一个<-seq(-7, 7, by = 0.2) b <-dnorm(a, 平均值= 2.5, sd = 2) png(file =” pnorm.png”) 情节(x, y) dev.off() |
3. | qnorm(p, m = 0, sd = 1) | 用于查找其累积值与概率值匹配的数字。 | 一个<-seq(1, 2, by = 002) b <-qnorm(a, 平均值= 2.5, sd = 0.5) png(file =” qnorm.png”) 情节(x, y) dev.off() |
4. | rnorm(n, m = 0, sd = 1) | 用于生成正态分布的随机数。 | y <-rnorm(40) png(file =” rnorm.png”) hist(y, main =”正态分布”) dev.off() |
5. | dbinom(x, 大小, 概率) | 它用于查找每个点的概率密度分布。 | a <-seq(0, 40, by = 1) b <-dbinom(a, 40, 0.5) png(file =” pnorm.png”) 情节(x, y) dev.off() |
6. | pbinom(q, 大小, 概率) | 它用于查找事件的累积概率(代表概率的单个值)。 | 一个<-pbinom(25, 40, 0.5) 打印(a) 输出量 [1] 0.9596548 |
7. | qbinom(p, 大小, 概率) | 用于查找其累积值与概率值匹配的数字。 | 一个<-qbinom(0.25, 40, 01 / 2) 打印(a) 输出量 [1] 18 |
8. | rbinom(n, 大小, 概率) | 它用于从给定样本生成给定概率的所需数量的随机值。 | 一个<-rbinom(6, 140, 0.4) 打印(a) 输出量 [1] 55 61 46 56 58 49 |
9. | 之后(x, 舔) | 它是预期事件数为lambda(λ)的时间段内x成功的概率 | dpois(a = 2, lambda = 3)+ dpois(a = 3, lambda = 3)+ dpois(z = 4, labda = 4) 输出量 [1] 0.616115 |
10. | ppois(q, 腰带) | 它是小于或等于q个成功的累积概率。 | ppois(q = 4, lambda = 3, lower.tail = TRUE)-ppois(q = 1, lambda = 3, lower.tail = TRUE) 输出量 [1] 0.6434504 |
11. | 重复(n, 舔) | 它用于根据泊松分布生成随机数。 | rpois(10, 10) [1] 6 10 11 3 10 7 7 8 14 12 |
12. | dunif(x, min = 0, max = 1) | 此功能提供有关从最小到最大间隔的均匀分布的信息。它给出了密度。 | dunif(x, min = 0, max = 1, log = FALSE) |
13. | punif(q, min = 0, max = 1) | 它提供了分布式功能 | punif(q, min = 0, max = 1, lower.tail = TRUE, log.p = FALSE) |
14. | qunif(p, min = 0, max = 1) | 它提供了分位数功能。 | qunif(p, min = 0, max = 1, lower.tail = TRUE, log.p = FALSE) |
15. | runif(x, min = 0, max = 1) | 它产生随机偏差。 | runif(x, min = 0, max = 1) |
![](https://img2020.cnblogs.com/blog/1570232/202104/1570232-20210418204232285-1629249253.png)
其他统计功能
除上述功能外, 还有一些其他有用的功能可用于统计目的。有以下功能:
S.没有 | Function | Description | Example |
---|---|---|---|
1. | 平均值(x, trim = 0, na.rm = FALSE) | 用于查找x对象的均值 | a <-c(0:10, 40) xm <-平均值(a) 打印(xm) 输出量 [1] 7.916667 |
2. | sd(x) | 它返回对象的标准偏差。 | a <-c(0:10, 40) xm <-sd(a) 打印(xm) 输出量 [1] 10.58694 |
3. | median(x) | 它返回中位数。 | a <-c(0:10, 40) xm <-meadian(a) 打印(xm) 输出量 [1] 5.5 |
4. | 量化(x, 概率) | 它返回分位数, 其中x是需要分位数的数值向量, 而probs是概率在[0, 1]中的数值向量 | |
5. | range(x) | 它返回范围。 | a <-c(0:10, 40) xm <-范围(a) 打印(xm) 输出量 [1] 0 40 |
6. | sum(x) | 它返回总和。 | a <-c(0:10, 40) xm <-sum(a) 打印(xm) 输出量 [1] 95 |
7. | diff(x, 滞后= 1) | 它返回带有滞后的差异, 指示要使用哪个滞后。 | a <-c(0:10, 40) xm <-diff(a) 打印(xm) 输出量 [1] 1 1 1 1 1 1 1 1 1 1 1 30 |
8. | min(x) | 它返回最小值。 | a <-c(0:10, 40) xm <-min(a) 打印(xm) 输出量 [1] 0 |
9. | max(x) | 返回最大值 | a <-c(0:10, 40) xm <-最大(a) 打印(xm) 输出量 [1] 40 |
10. | 比例尺(x, center = TRUE, scale = TRUE) | 列中心或标准化矩阵。 | 一个<-矩阵(1:9, 3, 3) 比例(x) 输出量 [, 1] [1, ] -0.747776547 [2, ] -0.653320562 [3, ] -0.558864577 [4, ] -0.464408592 [5, ] -0.369952608 [6, ] -0.275496623 [7, ] -0.181040638 [8, ] -0.086584653 [9, ] 0.007871332 [10, ] 0.102327317 [11, ] 0.196783302 [12, ] 3.030462849 attr(, ” scaled:center”) [1] 7.916667 attr(, ” scaled:scale”) [1] 10.58694 |
概率函数
分布函数
注意:不同前缀,第一个参数 n 的意义不同(详见下方讲解)
连续型
名称 | 英文名 | R对应的函数 | 参数 |
高斯分布 | gaussian | norm | n, mean=0, sd=1 |
指数分布 | exponential | exp | n, rate=1 |
伽玛分布(γ) | gamma | gamma | n, shape, scale=1 |
韦氏分布 | Weibull | weibull | n, shape, scale=1 |
柯西分布 | Cauchy | cauchy | n, location=0, scale=1 |
β分布 | beta | beta | n, shape1, shape2 |
t分布 | Student's t | t | n, df |
F分布 | F | f | n, df1, df2 |
卡方分布 | chi-squared | chisq | n, df |
Logistic 分布 | Logistic | logis | n, location=0, scale=1 |
对数正态分布 | log-normal | lnorm | n, meanlog=0, sdlog=1 |
均匀分布 | uniform | unif | n, min=0, max=1 |
离散型
名称 | 英文名 | R对应的函数 | 参数 |
泊松分布 | Poisson | pois | n, lambda |
二项分布 | binomail | binom | n, size, prob |
多项分布 | multinomial | multinom | n, size, prob |
几何分布 | geometric | geom | n, prob |
超几何分布 | hypergeometric | hyper | nn, m, n, k |
负二项分布 | negative binomial | nbinom | n, size, prob |
R——正态分布
从独立来源随机收集数据时,通常会观察到数据分布是正常的。这意味着,在水平轴上绘制变量值并在垂直轴上计数值的图形时,我们会得到一个钟形曲线。曲线的中心代表数据集的平均值。在图中,值的百分之五十位于平均值的左侧,而另外百分之五十位于图形的右侧。这在统计中称为正态分布。
dnorm(x, mean, sd) pnorm(x, mean, sd) qnorm(p, mean, sd) rnorm(n, mean, sd)
# Create a sequence of numbers between -10 and 10 incrementing by 0.1. x <- seq(-10, 10, by = .1) # Choose the mean as 2.5 and standard deviation as 0.5. y <- dnorm(x, mean = 2.5, sd = 0.5) plot(x,y)
# Create a sequence of numbers between -10 and 10 incrementing by 0.2. x <- seq(-10,10,by = .2) # Choose the mean as 2.5 and standard deviation as 2. y <- pnorm(x, mean = 2.5, sd = 2) # Plot the graph. plot(x,y)
# Create a sequence of probability values incrementing by 0.02. x <- seq(0, 1, by = 0.02) # Choose the mean as 2 and standard deviation as 3. y <- qnorm(x, mean = 2, sd = 1) # Plot the graph. plot(x,y)
# Create a sample of 50 numbers which are normally distributed. y <- rnorm(50) # Plot the histogram for this sample. hist(y, main = "Normal DIstribution")