将列表列表指定为嵌套列

时间:2018-02-06 15:17:00

标签: r tidyverse tidyr

我想使用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

1 个答案:

答案 0 :(得分:0)

我认为你需要的只是

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

我自己刚刚问过a tangentially related question,现在也可以为您提供一些有用的变体语法:

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

如果您不想多次输入params,此版本可能会更好看。