Whale | R Documentation |
R6 Objects for modelling a whale. Female and Male inherit from whale. Use Female and Male if you want to provide custom lists of male and female whales when you instantiate an ocean.
R6Class
object.
Object of R6Class
with methods for simulation.
new
: Instantiates an Whale object. Parameters are:
position
: A numeric vector of length 2 giving the initial
position. (Make sure that it's within the dimensions of the ocean.)
age
: Initial age of the whale.
lifespan
: Lifespan of the whale.
range
: Distance at which a female can detect an
eligible male.
maturity
: Age of whale at which reproduction is possible.
stepSize
: Number of units the whale move sin each gneration.
new()
Whale$new( position = NA, age = 3, lifespan = 40, range = 5, maturity = 10, stepSize = 5 )
move()
Whale$move(dims, r = self$stepSize)
clone()
The objects of this class are cloneable with this method.
Whale$clone(deep = FALSE)
deep
Whether to make a deep clone.
bcscr::Whale
-> Male
clone()
The objects of this class are cloneable with this method.
Male$clone(deep = FALSE)
deep
Whether to make a deep clone.
bcscr::Whale
-> Female
maleNear()
Female$maleNear(males, dist)
mate()
Female$mate()
clone()
The objects of this class are cloneable with this method.
Female$clone(deep = FALSE)
deep
Whether to make a deep clone.
Homer White homerhanumat@gmail.com
## Not run: initialMales <- vector(mode = "list", length = 10) ages <- c(rep(3, 5), c(rep(10, 5))) for (i in 1:10) { initialMales[[i]] <- Male$new( position = runif(2, min = 0, max = 100), age = ages[i], lifespan = 40, range = 12, maturity = 10, stepSize = 7 ) } initialFemales <- vector(mode = "list", length = 10) for (i in 1:10) { initialFemales[[i]] <- Female$new( position = runif(2, min = 0, max = 100), age = ages[i], lifespan = 40, maturity = 10, range = 12, stepSize = 3 ) } library(ggplot2) oceanSim <- function( steps = 100, males = 10, females = 10, starve = 5, animate = FALSE, seed = NULL ) { if ( !is.null(seed) ) { set.seed(seed) } ocean <- Ocean$new(dims = c(100, 100), males = males, females = females, starve = starve) population <-numeric(steps) for ( i in 1:steps ) { population[i] <- ocean$malePop + ocean$femalePop if ( animate ) ocean$plot() if ( population[i] == 0 ) break ocean$advance() if ( animate ) { ocean$plot() Sys.sleep(0.5) } } pop <- population[1:i] df <- data.frame(time = 1:length(pop), pop) ggplot(df, aes(x = time, y = pop)) + geom_line() + labs(x = "Time", y = "Whale Population") } oceanSim(males = initialMales, females = initialFemales, seed = 5050) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.