apply函数族简介

apply函数

  • 沿着数组的某一维度处理数据。例如:将函数用于矩阵的行或列;虽然与for/while循环的效率相似,但只用一句话就可以完成
  • 参数: apply(数组,维度,函数/函数名)
x<-matrix(1:16,4,4)
apply(x,2,mean)

[1]  2.5  6.5 10.5 14.5
x<-matrix(rnorm(100),10,10)
apply(x,1,quantile,probs=c(0.25,0.75))

lapply函数

  • 可以循环处理列表中的每一个元素
  • 参数: lapply(列表,函数/函数名,其他)
  • 总是返回一个列表
x<-list(a=1:10,b=c(11,21,31,41,51))
lapply(x,mean)              #若x不是一个列表,R会将其强制转换为列表

$a
[1] 5.5

$b
[1] 31

sapply函数

  • 结果列表元素长度均为1,返回向量
  • 结果列表元素长度相同且大于1,返回矩阵(若长度不相同,则不能简化,即依然为列表)
x<-list(a=1:10,b=c(11,21,31,41,51))
sapply(x,mean)

  a      b
5.5   31.0

mapply函数

  • lapply的多元版本
  • 参数: mapply(函数/函数名,数据,函数相关的参数)
mapply(rep,1:4,4:1)

[[1]]
[1] 1 1 1 1
[[2]]
[1] 2 2 2
[[3]]
[1] 3 3
[[4]]
[1] 4

tapply函数

  • 对向量的子集进行操作
  • 参数: tapply(向量,因子/因子列表,函数/函数名)
x<-c(rnorm(5),runif(5),rnorm(5,1))
f<-gl(3,5)
tapply(x,f,mean)

         1          2          3 
-0.4793135  0.6472551  0.8236216
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值