Hello! Does anyone know how to export the results in Excel in case I have data of type environment? I have done a simulation and I was to export the results.
Thank you
Hello! Does anyone know how to export the results in Excel in case I have data of type environment? I have done a simulation and I was to export the results.
Thank you
an environment is an assortment of variables.
You'll have to corral the contents into a data.frame(s).
How easy/hard this will be will depend on your knowledge of what you've been doing and whats gone into the environment in question...
You could have a look at the function simmer:::print.simmer
to see which items to 'corral' :
simmer:::print.simmer
function (x, ...)
{
cat(paste0("simmer environment: ", x$name, " | now: ",
now(x), " | next: ", peek(x), "\n", "{ Monitor: ",
x$mon$name, " }\n"))
for (name in names(x$mon$handlers)) cat(paste0(" { ",
name, ": ", x$mon$handlers[[name]], " }\n"))
for (name in names(x$resources)) cat(paste0("{ Resource: ",
name, " | monitored: ", x$resources[[name]][["mon"]],
" | server status: ", get_server_count(x, name),
"(", get_capacity(x, name), ")", " | queue status: ",
get_queue_count(x, name), "(", get_queue_size(x,
name), ") }\n"))
for (name in names(x$sources)) cat(paste0("{ Source: ",
name, " | monitored: ", x$sources[[name]][["mon"]],
" | n_generated: ", get_n_generated(x, name), " }\n"))
for (name in names(x$globals)) {
value <- x$globals[[name]]
is_schedule <- inherits(value, "schedule")
if (is_schedule)
value <- value$schedule$init
cat(paste0("{ Global: ", name, " | schedule: ",
is_schedule, " | initial value: ", value, " }\n"))
}
invisible(x)
}
<bytecode: 0x000001d34a12a2a8>
<environment: namespace:simmer>
>
Thank you! My environment so far contains data in 7 columns which have a length of 500 rows. I will check how to corral them into a data frame
Thank you very much!
Ionna,
if you are talking about the output of one of the get_mon_*
functions you can always use the write.csv
function:
zz = terminal %>%
get_mon_resources()
write.csv(zz,'zz.csv',row.names = F)
Indeed, I am taking about the output of get_mon_arrivals but when I used the write.csv function the following error occured: Error in as.data.frame.default(x[[i]], optional = TRUE) :
cannot coerce class ‘"simmer"’ to a data.frame
I think you are trying to write the wrong object (?)
Building on your example of a few days ago I have no problems writing data with
terminal <-
simmer("terminal") %>%
add_global("berth_size",0) %>%
add_resource("berth",5) %>%
add_generator("Vessel",
deepsea, function() { c(0, rgamma(79, 1.47,0.23))},mon=2) %>%
add_generator("Barge",
barge, function() { c(0, rgamma(609,1.14,0.04))})
terminal %>%
run(until = 500)
xx = terminal %>%
get_mon_arrivals() %>%
transform(waiting_time = end_time - start_time - activity_time)
write.csv(xx,'xx.csv',row.names = F)
Is this not working for you ?
I did it again and now it worked thank you very much for your help! Really appreciated it!
You are very welcome and thanks for pointing me to the simmer
package.
This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.