R语言 plyr包 m_ply mdply

R语言 m_ply的使用

plyr包也算得上是R语言的神器,可以并行,可以显示进程,尤其是可以自定义返回值。其中最长使用的是ldply, llply等单参数函数,今天想介绍多参数传递的函数m_ply、 mdply、maply、mlply。
m_ply 系列函数来源于基础包的 mapply 函数。

mapply

# 双参数
 f = function(a, b){
      return(c(2*a, 3*b))
   }
  mapply(f, 1:4, 2:5)
  #每一列为一组结果
#       [,1] [,2] [,3] [,4]
#[1,]    2    4    6    8
#[2,]    6    9   12   15

mapply(f, 1:4, 2)
#      [,1] [,2] [,3] [,4]
#[1,]    2    4    6    8   
#[2,]    6    6    6    6

可见mapply的使用,多个参数,要么长度相同, 要么其中的参数固定不变。

m_ply

m_ply函数我们以mdply为例


mdply(.data, #实参在data.frame中传递
 .fun = NULL,# 使用的函数
  ..., .expand = TRUE,
   .progress = "none",# 是否显示进度条,可以设置为 text
  .inform = FALSE, 
  .parallel = FALSE,# 是否使用并行
   .paropts = NULL)
#例子
 f = function(a, b){
      return(c(2*a, 3*b))
   }
mdply(data.frame(a=1:4, b=2:5),f)
 # a,b 两列,每一行为一组数据

# 每一行为一组结果, V1, V2为返回值
#a b V1 V2
#1 1 2  2  6
#2 2 3  4  9
#3 3 4  6 12
#4 4 5  8 15

# 2列可变参数,一个固定参数的情况
mdply(data.frame(mean = 1:5, sd = 1:5), rnorm, n = 2)

#n为固定参数,分别以1,2,3,4,5为均值和标准差生成2个随机数。
#   mean sd     V1         V2
#1    1  1  2.467133  0.3460016
#2    2  2  5.298599  4.3033986
#3    3  3  2.431185  6.6862659
#4    4  4 -2.372333 11.8205677
#5    5  5  2.396693  1.8423787
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

探索者v

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值