我想使用purrr根据一些参数生成一些数据。
下面显示的是一个脚本,它将生成由a
和b
(数据框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)
的输出。
我想你需要的只是
params %>%
mutate(den = pmap(params, gen_den))
我自己刚刚问了a tangentially related question,现在也可以给你一些变体语法,你可能会觉得它们很有用:
params %>%
{mutate(., den = pmap(., gen_den))}
如果你不喜欢不止一次输入params
,这个版本看起来会更好。