# NOT RUN {
data(eco.test)
## Three ways to construct an ecopop object
## 1) ecogen to ecopop
my_ecopop <- ecogen2ecopop(eco, hier = "pop")
# extracting tables with accessors (double brackets notation)
XY_pop <- my_ecopop[["XY"]]
P_pop <- my_ecopop[["P"]]
AF_pop <- my_ecopop[["AF"]]
E_pop <- my_ecopop[["E"]]
S_pop <- my_ecopop[["S"]]
## 2) Creating a new ecopop object
my_ecopop2 <- ecopop(XY = XY_pop, P = XY_pop, AF = AF_pop, E = E_pop,
S = S_pop,
ploidy = 2, type = "codominant")
## 3) From an empty object
# new empty object
my_ecopop3 <- ecopop(ploidy = 2, type = "codominant")
set slots, using as example the data generated above
my_ecopop3[["XY"]] <- XY_pop # The first assignments initializes the S slot
# with the row names of the data frame used (XY)
my_ecopop3[["P"]] <- P_pop
my_ecopop3[["AF", ploidy = 2]] <- AF_pop
my_ecopop3[["E"]] <- E_pop
my_ecopop3[["S"]] <- S_pop
## Subsetting by rows:
my_ecopop3[1:10]
#--------------------------------
# Locked and unlocked objects
#--------------------------------
is.locked(my_ecopop) # check if object is locked
my_ecopop[["P"]] <- rbind(my_ecopop[["P"]], my_ecopop[["P"]]) # invalid in locked object
my_ecopop_unlocked <- eco.unlock(my_ecopop) #unlocked object
my_ecopop_unlocked[["P"]]<-rbind(my_ecopop[["P"]], my_ecopop[["P"]]) # valid now
new_locked <- eco.lock(my_ecopop_unlocked) # invalid
my_ecopop_unlocked[["P"]]<- my_ecopop[["P"]]
new_locked <- eco.lock(my_ecopop_unlocked) # valid now
# }
# NOT RUN {
# }
Run the code above in your browser using DataCamp Workspace