
Last chance! 50% off unlimited learning
Sale ends in
psdAdd(len, ...)
## S3 method for class 'default':
psdAdd(len, spec, units = c("mm", "cm", "in"),
use.names = TRUE, addSpec = NULL, addLens = NULL, verbose = TRUE, ...)
## S3 method for class 'formula':
psdAdd(len, data = NULL, units = c("mm", "cm", "in"),
use.names = TRUE, addSpec = NULL, addLens = NULL, verbose = TRUE, ...)
len~spec
where len
is a formula.mm
for millimeters (DEFAULT), cm
for centimeters, and in
for inches.=FALSE
) or string (=TRUE
; default) representations of the Gabelhouse lengths. See details.addLens
will be provided.addSpec
. See examples.len
is a formula.NA
for each individual for which a Gabelhouse length definitions do not exist in PSDlit
. Species names in the data.frame must be the same as those used in PSDlit
. See the examples for one method for changing species names to something that this function will recognize.
Individuals shorter than substock
if use.names=TRUE
or 0
if use.names=FALSE
.
Additional lengths to be used for a species may be included by giving a vector of species names in addSpec
and a corresponding vector of additional lengths in addLens
. Note, however, that use.names
will be reset to FALSE
if addSpec
and addLens
are specified, as there is no way to order the names for all species when additional lengths are used.psdVal
, psdCalc
, psdPlot
, PSDlit
, and wrAdd
for related functions. See mapvalues
for help in changing species names to match those in PSDlit
.## Create random data for three species
# only for repeatability
set.seed(345234534)
dbg <- data.frame(species=factor(rep(c("Bluegill"),30)),tl=round(rnorm(30,130,50),0))
dbg$wt <- round(4.23e-06*dbg$tl^3.316+rnorm(30,0,10),1)
dlb <- data.frame(species=factor(rep(c("Largemouth Bass"),30)),tl=round(rnorm(30,350,60),0))
dlb$wt <- round(2.96e-06*dlb$tl^3.273+rnorm(30,0,60),1)
dbt <- data.frame(species=factor(rep(c("Bluefin Tuna"),30)),tl=round(rnorm(30,1900,300),0))
dbt$wt <- round(4.5e-05*dbt$tl^2.8+rnorm(30,0,6000),1)
df <- rbind(dbg,dlb,dbt)
str(df)
## Examples (non-dplyr)
# Add variable using category names -- formula notation
df$PSD <- psdAdd(tl~species,data=df)
head(df)
# Add variable using category names -- non-formula notation
df$PSD1 <- psdAdd(df$tl,df$species)
head(df)
# Add variable using length values as names
df$PSD2 <- psdAdd(tl~species,data=df,use.names=FALSE)
head(df)
# Add additional length and name for Bluegill
df$PSD3 <- psdAdd(tl~species,data=df,addSpec="Bluegill",addLens=175)
head(df)
# Add additional lengths and names for Bluegill and Largemouth Bass from a data.frame
addls <- data.frame(species=c("Bluegill","Largemouth Bass","Largemouth Bass"),
lens=c(175,254,356))
df$psd4 <- psdAdd(tl~species,data=df,addSpec=addls$species,addLens=addls$lens)
head(df)
## All of the above but using dplyr
if (require(dplyr)) {
df <- df %>%
mutate(PSD1A=psdAdd(tl,species)) %>%
mutate(PSD2A=psdAdd(tl,species,use.names=FALSE)) %>%
mutate(psd3a=psdAdd(tl,species,addSpec="Bluegill",addLens=175)) %>%
mutate(psd4a=psdAdd(tl,species,addSpec=addls$species,addLens=addls$lens))
}
df
Run the code above in your browser using DataLab