R语言笔记1——函数(dnorm optim sample integrate sort sapply)

R语言笔记1——函数的使用

dnorm

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

dpois() R语言中的函数用于计算一组整数值的泊松密度。它还创建泊松分布的密度图。

用法: dpois(vec, lambda)

参数:
**vec:**整数值序列
**lambda:**每个时间间隔的平均事件数

范例1:

# 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

optim() 函数:基于Nelder-Mead、准牛顿和共轭梯度算法的通用优化(求最小值)。它包括一个用于盒约束优化和模拟退火的选项。

R语言optim

rnorm

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() 函数可以完成随机抽样处理,其基本形式为:
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

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() 函数的作用是:将列表、向量或数据帧作为输入,并以向量或矩阵的形式给出输出。
**sapply()函数和lapply()**函数做同样的工作,但是返回一个列表。

sapply(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()函数主要用于避免显式使用循环结构。它是所有集合中最基本的,可以在母体上使用。
apply函数的详细使用方法

  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值