purrr在data.frame超过specifed尺寸适用功能列表(purrr apply fun

2019-10-28 12:37发布

下面产生的数据帧与<int[]><list[]>字段:

library(tidyverse)
set.seed(123)

s <- 4
data <- data.frame(
    lamda = c(5, 2, 3), 
    meanlog = c(9, 10, 11), 
    sdlog = c(2, 2.1, 2.2)
)

data2 <- data %>%
    mutate(
        freq = map(lamda, ~rpois(s, .x)),
        freqsev = map(freq, ~map(.x, function(k) rlnorm(k, meanlog, sdlog)))
    )

输出: as_tibble(data2)

lamda meanlog sdlog freq      freqsev   
<dbl>   <dbl> <dbl> <list>    <list>    
1     5       9   2   <int [4]> <list [4]>
2     2      10   2.1 <int [4]> <list [4]>
3     3      11   2.2 <int [4]> <list [4]>

我想创建与平均新字段freq (产生双),平均超过模拟s ,和的总和freqsev (产生<dbl [4]>其中,[4]是指数s )即我们总和在发生例如数量

对于data2$freq[[1]]我期望的平均值。

为了data2$freqsev[[1]][[1]]我期望的总和。

此外,我想创建一个字段或优选地基于百分位功能字段一小撮施加到freq ; 就像是:

quantile(data2$freq[[1]], c(0.5, 0.75, 0.9))

生产油田quantile_0.5,quantile_0.75,的quantile_0.9 <dbl>

我曾尝试purrr地图功能,但我不知道该如何选择具体的尺寸在应用操作。 谢谢。

文章来源: purrr apply functions to lists in data.frame over specifed dimensions