将列表列表指定为嵌套列

问题描述 投票:1回答:1

我想使用purrr根据一些参数生成一些数据。

下面显示的是一个脚本,它将生成由ab(数据框params的列)参数化的0到1的beta密度。

library(tidyverse)

a = c(2,4,6)
b = c(10,12,14)

params = expand.grid(a = a, b = b)

gen_den = function(a,b){ 
  x = seq(0,1,0.1)
  den = dbeta(x = x, shape1 = a, shape2 = b)

  return(den)
  }

# Want to assign this as a nested column
 params %>% 
  pmap(gen_den)

我想知道我是否可以将pmap的结果分配给一个列,其中每个观察都是一个嵌套的数据框。下面显示的是一些所需的输出。这里,data列是gen_den(a,b)的输出。

enter image description here

r tidyverse tidyr
1个回答
0
投票

我想你需要的只是

 params %>% 
   mutate(den = pmap(params, gen_den)) 

我自己刚刚问了a tangentially related question,现在也可以给你一些变体语法,你可能会觉得它们很有用:

 params %>% 
    {mutate(., den = pmap(., gen_den))} 

如果你不喜欢不止一次输入params,这个版本看起来会更好。

© www.soinside.com 2019 - 2024. All rights reserved.