【发布时间】:2019-06-25 20:39:04
【问题描述】:
我有一个具有以下维度的 data.frame:
输出:
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]>
其中freqsev 是长度为freq 的值的列表,freq 本身是长度为s 的值的列表,其中s 是模拟次数。
library(tidyverse)
set.seed(123)
s <- 5
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)))
)
我想对freqsev 求和(产生<dbl [4]>,其中[4] 是s 的索引),即freq 出现次数的总和,例如
对于data2$freqsev[[1]][[1]],我希望得到总和。
如何做到这一点?谢谢。
【问题讨论】:
-
可能是
lapply(data2$freqsev, function(x) vapply(x,sum,1))。 -
这和你之前的问题有什么不同吗? stackoverflow.com/questions/54471512/…