r - 在 R / 编写内部带有外部函数的循环函数
问题描述
我想用 queuecomputer https://cran.rstudio.com/web/packages/queuecomputer/queuecomputer.pdf生成 100 个排队模型(因为到达和服务时间是随机的,我总是会得到不同的结果)并存储一个特定的值每个列表都在一个单独的向量中。(队列计算机总是返回一个列表)例如让
n_customers <- 50
arrival_rate <- 1.8
service_rate <- 1
arrivals <- cumsum(rexp(n_customers, arrival_rate))
service <- rexp(n_customers, service_rate)
queue_obj <- queue_step(arrivals, service, servers = 2)
然后我想访问所有 100 个样本的 summary(queue_obj)$mwt 并将该值放入一个新向量中。
到目前为止我已经尝试过但它不起作用:
queuetmp <- function(n) {
for (i in 1:n) {
queue[[i]] <- queue_step(cumsum(rexp(50, 1/10)), rexp(50, 1/8), servers = 2)
mwt[i] <- (summary(queue))[[i]]$mwt
}
return (mwt)
}
(因为 queuecomputer 是一个非常新的包,很多人不会熟悉它,但输出只是一个典型的列表)
解决方案
我认为您需要将索引移动到i
内部并首先将 and 定义queue
为mwt
空列表,即:
library(queuecomputer)
n_customers <- 50
arrival_rate <- 1.8
service_rate <- 1
arrivals <- cumsum(rexp(n_customers, arrival_rate))
service <- rexp(n_customers, service_rate)
queue_obj <- queue_step(arrivals, service, servers = 2)
queue <- list()
mwt <- list()
queuetmp <- function(n) {
for (i in 1:n) {
queue[[i]] <- queue_step(cumsum(rexp(50, 1/10)), rexp(50, 1/8), servers = 2)
mwt[i] <- (summary(queue[[i]]))$mwt
}
return (mwt)
}
queuetmp(10)
如果这与您的期望相符,我似乎得到了一个不平凡的答案?
推荐阅读
- mysql - 使用 Spark 和 MySQL 实现丰富是个坏主意?
- c++ - 使用 LLDB 创建 std::vector 便利变量
- c# - 工厂方法以及在哪里选择要使用哪个工厂
- encryption - 我无法使用 GPG 钥匙串解密或验证使用赛门铁克 PGP 发送的消息
- ffmpeg - Ffmpeg 以交互方式模糊部分视频
- c# - 矿池创世交易与协议版本不兼容
- express - express-jwt - 显示调试权限
- wifi - 互联网可以在 VPN 上运行,但不能在以太网连接中运行
- javascript - 尽管我使用了异步等待,但在 put 请求之前执行 http 请求
- python - Python 3:使用 while True 循环在列表中追加整数