R语言学习之 apply家族的使用

apply 家族可以进行伪矢量化, 最简单最常用的是 lapply 是 list apply的缩写,参数是某个函数,将此函数作用于列表中的每一个元素上面,并返回另一个列表中

> prime_factors <- list(
+     two = 2,
+     three = 3,
+     four = c(2,2),
+     five = 5,
+     six = c(2,3),
+     seven = 7,
+     eight = c(2,2,2),
+     nine = c(3,3),
+     ten = c(2,5)
+ )
> head(prime_factors)
$two
[1] 2

$three
[1] 3

$four
[1] 2 2

$five
[1] 5

$six
[1] 2 3

$seven
[1] 7

> lapply(prime_factors,unique)
$two
[1] 2

$three
[1] 3

$four
[1] 2

$five
[1] 5

$six
[1] 2 3

$seven
[1] 7

$eight
[1] 2

$nine
[1] 3

$ten
[1] 2 5
还可以使用vapply函数 返回vector  第三个参数是其返回的模板

> vapply(prime_factors,length,numeric(1))
  two three  four  five   six seven eight  nine   ten 
    1     1     2     1     2     1     3     2     2 

还有一个sapply的使用 简化列表 不需要模板 ,简化到一个合适的数组或向量中

> sapply(prime_factors,unique)
$two
[1] 2

$three
[1] 3

$four
[1] 2

$five
[1] 5

$six
[1] 2 3

$seven
[1] 7

$eight
[1] 2

$nine
[1] 3

$ten
[1] 2 5

> 



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值