我想要创建一个带有ID (iter)和随机生成数据的tibble。
iter data
<int> <list>
1 1 <dbl [5]>
2 2 <dbl [5]>
3 3 <dbl [5]>我尝试了两种类型的代码,其中只有一种给出了预期的结果,但我不知道为什么,因为唯一的区别是在tibble()中生成数据。
iter <- 2 ; n <- 5 ; mu <- 1
gen_data <- function(x){ # randomly draw from Exponential function
return(rexp(n, rate=1/mu))
}
# Works (different values each time)
data <- lapply(1:iter, gen_data)
tibble(iter = 1:iter,
data = data) %>% unnest(data)
# Doesn't work (+ there is a warning)
tibble(iter = 1:iter,
data = lapply(1:iter, gen_data)) %>% unnest(data)发布于 2019-04-02 14:11:04
当您在第二个示例中调用lapply()时,需要仅以名称引用iter,而不是试图重新构建向量。
tibble(iter = 1:iter,
data = lapply(iter, gen_data)) %>% unnest(data)这是因为tibble()正在它的上下文中按名称查找变量,并且iter已经以c(1,2)的形式存在。警告来自您将两个元素传递给:,它会发出投诉,然后使用第一个元素向前移动。
https://stackoverflow.com/questions/55476644
复制相似问题