R apply()、lapply(),sapply()

  

目录

一、 apply()

二、lapply() 和 sapply()


      首先我们给出三个函数的应用区别:

  • apply() 作用在矩阵上
  • lapply() 作用在向量或列表上,返回列表
  • sapply() 作用在向量或列表上,返回向量

一、 apply()

> x<-array(c(1:24),c(3,4))
> x
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12
> apply(x,1,sum) #按行
[1] 22 26 30
> apply(x,2,sum) #按列
[1]  6 15 24 33

        我们试着配合自定义函数:

> myFun<-function(x){sum(x^2)}
> apply(x,1,myFun)
[1] 166 214 270

二、lapply() 和 sapply()

> y<-c(2:5)
> lapply(y,function(x) {x^2})
[[1]]
[1] 4

[[2]]
[1] 9

[[3]]
[1] 16

[[4]]
[1] 25
> sapply(y,function(x) {x^2}) #注意这里的x只是形式上的y,和之前的矩阵没有关系
[1]  4  9 16 25
> sapply(y,function(x)matrix(x,2,2),simplify = "array") #若输出是矩阵,要填一个参数
, , 1

     [,1] [,2]
[1,]    2    2
[2,]    2    2

, , 2

     [,1] [,2]
[1,]    3    3
[2,]    3    3

, , 3

     [,1] [,2]
[1,]    4    4
[2,]    4    4

, , 4

     [,1] [,2]
[1,]    5    5
[2,]    5    5

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值