【发布时间】:2016-05-26 11:11:27
【问题描述】:
每个人。
我正在 Shiny R 中编写一个模拟应用程序,但我被困在 for 循环中。
基本上,在反应式中,我正在调用一个循环遍历其他几个函数的函数,如下所示:
在server.R中:
output.addiction <- reactive ({
SimulateMultiple(input$no.simulations, vectors(), parameters(), input$S.plus, input$q,
input$weeks, input$d, list.output)
})
功能:
SimulateMultiple <- function (no.simulations, vectors, parameters, S.plus, q, weeks, d, list.output) {
for (i in 1:no.simulations) {
thisi <- i
simulation <- SimulateAddictionComponents(vectors, parameters, S.plus, q, weeks, d) # returns list "simulation"
df.output <- BuildOutputDataframe(weeks, simulation, vectors) # returns "df.outout"
output.addiction <-BuildOutputList(df.output, simulation, list.output) # returns "output.addiction"
}
return(output.addiction)
}
同样,最后一个创建输出列表的函数:
BuildOutputList <- function (df.output, simulation, list.output) {
addiction <- simulation$addiction
output.w.success <- list(df.output, addiction) # includes success data
output.addition <- c(list.output, list(output.w.success)) # adds the new data to the list
return(output.addition)
}
我在网上阅读了很多关于这个问题的信息,我试图隔离一些东西,引入一个本地({})等。但它从来没有奏效。最后,我得到一个长度为 1 的列表。
如果您能帮助我,我将永远感激不尽 - 我已经为此工作了两天。
【问题讨论】:
-
在for循环外初始化
output.addiction然后在这一行添加[i]undex:output.addiction[i] <-BuildOutputList(df.output...)