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.没有FunctionDescriptionExample
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

 

 

 

字符串功能

R提供了各种字符串函数来执行任务。这些字符串函数使我们能够从字符串, 搜索模式等中提取子字符串。R中包含以下字符串函数:

 

S.没有FunctionDescriptionExample
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

 

 

 

统计概率函数

R提供了各种统计概率函数来执行统计任务。这些统计功能对于查找法线密度, 法线分位数和更多计算非常有用。在R中, 使用了以下功能:

 
S.没有FunctionDescriptionExample
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)

 

 

其他统计功能

除上述功能外, 还有一些其他有用的功能可用于统计目的。有以下功能:

 

S.没有FunctionDescriptionExample
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")

  

 

posted @ 2021-04-18 21:13  徐海建  阅读(791)  评论(0编辑  收藏  举报