r purrr:pmap:如何按名称引用输入参数? [英] R purrr:::pmap: how to refer to input arguments by name?

查看:6
本文介绍了r purrr:pmap:如何按名称引用输入参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的Rpurrr:::pmap有三个输入。不清楚如何在公式调用中显式引用这些输入?使用map2时,公式调用为~ .x + .y。但是使用pmap的时候怎么办?

http://r4ds.had.co.nz/lists.html

复制Hadley的示例
library(purrr)
mu <- list(5, 10, -3)
sigma <- list(1, 5, 10)
n <- list(1, 3, 5)

args2 <- list(mean = mu, sd = sigma, n = n)
pmap(args2, rnorm)

如果我想在调用rnorm时显式引用输入参数,可以使用:

pmap(args2, function(mean, sd, n) rnorm(n, mean, sd))

但假设我要使用公式方法完成此操作。我该怎么做?例如,这不起作用:

pmap(args2, ~rnorm(n=.n, mean=.mean, sd=.sd))

谢谢!!

推荐答案

您可以使用with(...)来解决此问题:

pmap(args2, ~with(list(...),rnorm(n, mean, sd)))
# [[1]]
# [1] 2.733528
# 
# [[2]]
# [1] 4.0967533 6.4926143 0.6083532
# 
# [[3]]
# [1]  1.8836592 -0.2090425 -4.0030168  1.1834931  3.2771316

更多说明请点击此处:Harnessing .f list names with purrr::pmap

这篇关于r purrr:pmap:如何按名称引用输入参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆