用呜声生成嵌套观察

By simon at 2018-02-07 • 0人收藏 • 31人看过

我想生成一些密度参数化的其他列在一个 数据帧。以下是目前的一些代码:

library(tidyverse)

a = c(2,3,4)
b = c(10,11,10)

params = expand.grid(a, b)

bdens = function(a, b){
    dens =  dbeta(x = seq(0,1,0.01), shape1 = a, shape2  = b)
    return(dens)
  }
怎么样我可以用purrr和dplyr以我的方式创建嵌套观察 描述?

2 个回复 | 最后更新于 2018-02-07
2018-02-07   #1

如果我们提供带有函数参数名称的参数,我们可以 通过pmap

library(purrr)
set.seed(24)
params$dbetacol <- pmap_dbl(c(list(x = rnorm(9)), 
              setNames(params, c('shape1', 'shape2'))), dbeta)
注意:在这里由于OP没有提供详细信息,因此创建了x 关于'x'

更新

基于OP的功能,我们可以应用pmap的功能

lst <- pmap(setNames(params, c('a', 'b')), bdens)
返回vector与length相等的list 数量“params”数据集的行,即每对shape 每行的参数,beta分布的密度是cal为了 相同的“x”值即101个元素(seq(0, 1, 0.01))
length(lst)
#[1] 9
lengths(lst)
#[1] 101 101 101 101 101 101 101 101 101

2018-02-07   #2

如果我们提供带有函数参数名称的参数,我们可以 通过pmap

library(purrr)
set.seed(24)
params$dbetacol <- pmap_dbl(c(list(x = rnorm(9)), 
              setNames(params, c('shape1', 'shape2'))), dbeta)
注意:在这里由于OP没有提供详细信息,因此创建了x 关于'x'

更新

基于OP的功能,我们可以应用pmap的功能

lst <- pmap(setNames(params, c('a', 'b')), bdens)
返回vector与length相等的list 数量“params”数据集的行,即每对shape 每行的参数,beta分布的密度是cal为了 相同的“x”值即101个元素(seq(0, 1, 0.01))
length(lst)
#[1] 9
lengths(lst)
#[1] 101 101 101 101 101 101 101 101 101

登录后方可回帖

Loading...