以下内容将产生一个包含<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))
产生<dbl>
的字段Quantile_0.5,Quantile_0.75,Quantile_0.9
我已经尝试了purrr贴图功能,但是我不知道如何选择特定尺寸来应用该操作。 谢谢。