R语言作业笔记1
文章目录
- R语言作业笔记1
-
- dnorm
- dpois
- optim
- rnorm
- sample
- integrate
- sort
- findInterval
- sapply
- apply
dnorm
是R语言中正态分布的概率密度函数,d代表density,norm代表正态分布,在标准正态分布下返回给定x的概率密度。
对于给定的正态分布,X ~ N(μ,σ2),μ代表均值,σ2代表方差,dnorm()可以计算给定x下的概率密度,即P(X<=x|μ=a,σ=b),例如,标准正态分布 X ~ N(0,1),要计算x=1时的概率密度,即dnorm(1)=P(X<=1|μ=0,σ=1)
> dnorm(1) # 默认为标准正态分布,也可以写以下形式[1] 0.2419707> dnorm(1,mean=0,sd=1)[1] 0.2419707 > dnorm(1,mean=0,sd=1) [1] 0.2419707
dpois
R语言函数用于计算一组整数值的泊松密度。它还创建了泊松分布的密度图。
用法: dpois(vec, lambda)
**vec:**整数值序列 **lambda:**每个时间间隔的平均事件数
# R program to compute # Poisson Density # Sequence of x-values x <- seq(-10, 10, by = 1) # Calling dpois() Function y <- dpois(x, lambda = 5) y
optim
函数:基于Nelder-Mead、通用优化准牛顿和共轭梯度算法(最小值)。它包括盒约束优化和模拟退火的选项。
R语言optim
rnorm
函数:rnorm (n, mean = 0, sd = 1),n 产生随机值数(长度),mean 是平均数, sd 是标准差
使用函数后,通常会给它 3个值.
rnorm() 函数随机正态分布,然后随机抽样 或者取值 n 次,
rnorm(5,0,1) 以N(0,1)正态分布,分别列出5个值。
r 该列代表随机,可替换为dnorm, pnorm, qnorm 不同的计算:
r = random = 随机, d= density = 密度, p= probability = 概率 , q =quantile = 分位
sample
随机抽样分为重复随机抽样和非重复随机抽样。重复抽样是指从整体中提取的数据样本也有机会在下一次抽样中提取。不重复抽样是:一旦抽样为样本,下次就不能再抽样了。
函数可以随机抽样,其基本形式如下: sample(x, size, replace = FALSE) 具体参数说明: x 以向量的形式给出整体数据 size 抽取样本的数量 replace 如果为F(默认),此时不重复抽样,size长度不大于x; 如果为T,此时重复抽样size允许长度大于x prob 抽样向量中元素的可能性 相应的示例代码如下:
sample(c(1:20),size=10) #在1~在20个数据中随机抽取10个元素作为样本 [1] 13 7 4 5 2 19 14 6 10 3 sample(c(1:20),size=30,replace=T) #重复随机抽取30个元素作为样本 [1] 7 11 2 11 7 3 1 13 12 4 19 11 16 4 18 13 13 5 17 11 3 15 17 5 1 [26] 15 5 12 10 10
integrate
**integrate() **一元函数在有限或无限范围内的自适应积累
integrate(f, lower, upper, …, subdivisions = 100L, rel.tol = .Machine$double.eps^0.25, abs.tol = rel.tol, stop.on.error = TRUE, keep.xy = FALSE, aux = NULL)
integrate(function(x) x*exp(-(y-x)^2/2-lambda*abs(x)), lower = -Inf, upper = Inf)$value
sort
函数对向量从小到大排序,默认返回从小到大的值
test <- c(7,1,9,3,8) > test [1] 7 1 9 3 8 > a <- sort(test) ## 默认升序 > class(a) ## 返回值为值 [1] "numeric" > a [1] 1 3 7 8 9 > sort(test,decreasing = T) ## 降序排列 [1] 9 8 7 3 1
findInterval
findInterval() 函数-做cut处理 findInterval (x, vec),x 数据向量,vec默认情况下,为单调递增的向量产生区间是左闭右开的
x <- 2:18 v <- c(5, 10, 15) findInterval(x, v) [1] 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 cbind(x, findInterval(x, v)) x [1,] 2 0 [2,] 3 0 [3,] 4 0 [4,] 5 1 [5,] 6 1 [6,] 7 1 [7,] 8 1 [8,] 9 1 [9,] 10 2 [10,] 11 2 [11,] 12 2 [12,] 13 2 [13,] 14 2 [14,] 15 3 [15,] 16 3 [16,] 17 3 [17,] 18 3
sapply
函数的作用是以列表、向量或数据帧为输入,以向量或矩阵的形式输出。 **sapply()lapply()**函数做同样的工作,但返回列表。
(X, FUN)
| 参数 | 描述 | | X | 向量或对象 | | FUN | 作用于x中每个元素的函数 |
我们可以从cars汽车的数据集中测量速度与停止距离:
dt <- cars lmn_cars <- lapply(dt, min) smn_cars <- sapply(dt, min) lmn_cars # 结果 $speed [1] 4 $dist [1] 2 smn_cars # 结果 speed dist 4 2
apply
以数据帧或矩阵为输入,以向量、列表或数组的形式输出。apply()函数主要用于避免显式使用循环结构。它是所有集合中最基本的,可用于母亲。 apply详细使用函数的方法