Converts one-fish-per-line (i.e., “wide”) format growth data from radial to incremental or incremental to radial measurements.

gConvert(
  df,
  in.pre = NULL,
  in.var = NULL,
  out.type = c("inc", "rad"),
  out.pre = out.type
)

Arguments

df

A data.frame that contains the growth measurement data in one-fish-per-line (i.e., “wide”) format.

in.pre

A string that indicates the prefix for all variable names in the input data.frame that contain the measurements from the calcified structures. See details.

in.var

A vector of column numbers or variable names in the input data.frame that contain the measurements from the calcified structures. See details.

out.type

A string that identifies the output format data type (i.e., the format to convert to). If "inc" (the default) the output data frame will be incremental measurements. If "rad" the output data frame will be radial measurements.

out.pre

A string that indicates the prefix to use for the newly computed measurements in the output data frame. Defaults to the same string as out.type.

Value

A data.frame with all columns, except for those defined by in.pre or in.var, from the df retained as the left-most columns and the original data in the in.var columns converted to the out.type type as the remaining columns.

Details

The data must be in one-fish-per-line (i.e., “wide”) format where each row contains all information (including all measurements from the calcified structure) for an individual fish. It is assumed that the input data.frame is of the opposite data type given in out.type (i.e., that a conversion is needed). It does not check to see if this is true.

The columns that contain the original measurement data can specified in a variety of ways. First, if all columns begin with the same prefix (and no other columns contain that prefix), then the prefix string may be given to in.pre=. Second, a sequence of column numbers may be given to in.var= with the #:# (if the columns are contiguous) or as a vector (if the columns are not contiguous). Third, a vector of column names may be given to in.var=. Note that one, but not both, of in.var= or in.pre= must be specified by the user.

The newly computed data will be labeled with a prefix the same as out.type= (i.e., "rad" or "inc") unless out.pre= is set by the user. For example, if the data are converted to radial measurements, then the output variables will be “rad1”, “rad2”, etc. unless out.pre= was changed from the default. This function assumes that the measurements start with age-1.

See also

See addRadCap for related functionality.

Author

Derek H. Ogle, DerekOgle51@gmail.com

Examples

## Get data with radial measurements
data(SMBassWB,package="FSA")
head(SMBassWB)
#>   species lake gear yearcap fish agecap lencap    anu1 anu2 anu3 anu4 anu5 anu6
#> 1     SMB   WB    E    1988    5      1     71 1.90606   NA   NA   NA   NA   NA
#> 2     SMB   WB    E    1988    3      1     64 1.87707   NA   NA   NA   NA   NA
#> 3     SMB   WB    E    1988    2      1     57 1.09227   NA   NA   NA   NA   NA
#> 4     SMB   WB    E    1988    4      1     68 1.31848   NA   NA   NA   NA   NA
#> 5     SMB   WB    E    1988    6      1     72 1.59283   NA   NA   NA   NA   NA
#> 6     SMB   WB    E    1988    7      1     80 1.91602   NA   NA   NA   NA   NA
#>   anu7 anu8 anu9 anu10 anu11 anu12  radcap
#> 1   NA   NA   NA    NA    NA    NA 1.90606
#> 2   NA   NA   NA    NA    NA    NA 1.87707
#> 3   NA   NA   NA    NA    NA    NA 1.09736
#> 4   NA   NA   NA    NA    NA    NA 1.33108
#> 5   NA   NA   NA    NA    NA    NA 1.59283
#> 6   NA   NA   NA    NA    NA    NA 1.91602

## Use in.pre= to convert to increments
SMBi1 <- gConvert(SMBassWB,in.pre="anu",out.type="inc")
head(SMBi1)
#>   species lake gear yearcap fish agecap lencap  radcap    inc1 inc2 inc3 inc4
#> 1     SMB   WB    E    1988    5      1     71 1.90606 1.90606   NA   NA   NA
#> 2     SMB   WB    E    1988    3      1     64 1.87707 1.87707   NA   NA   NA
#> 3     SMB   WB    E    1988    2      1     57 1.09736 1.09227   NA   NA   NA
#> 4     SMB   WB    E    1988    4      1     68 1.33108 1.31848   NA   NA   NA
#> 5     SMB   WB    E    1988    6      1     72 1.59283 1.59283   NA   NA   NA
#> 6     SMB   WB    E    1988    7      1     80 1.91602 1.91602   NA   NA   NA
#>   inc5 inc6 inc7 inc8 inc9 inc10 inc11 inc12
#> 1   NA   NA   NA   NA   NA    NA    NA    NA
#> 2   NA   NA   NA   NA   NA    NA    NA    NA
#> 3   NA   NA   NA   NA   NA    NA    NA    NA
#> 4   NA   NA   NA   NA   NA    NA    NA    NA
#> 5   NA   NA   NA   NA   NA    NA    NA    NA
#> 6   NA   NA   NA   NA   NA    NA    NA    NA

## Use in.var= with column names to convert to increments
SMBi2 <- gConvert(SMBassWB,in.var=c("anu1","anu2","anu3","anu4",
                                    "anu5","anu6","anu7","anu8",
                                    "anu9","anu10","anu11","anu12"),
                           out.type="inc")
head(SMBi2)
#>   species lake gear yearcap fish agecap lencap  radcap    inc1 inc2 inc3 inc4
#> 1     SMB   WB    E    1988    5      1     71 1.90606 1.90606   NA   NA   NA
#> 2     SMB   WB    E    1988    3      1     64 1.87707 1.87707   NA   NA   NA
#> 3     SMB   WB    E    1988    2      1     57 1.09736 1.09227   NA   NA   NA
#> 4     SMB   WB    E    1988    4      1     68 1.33108 1.31848   NA   NA   NA
#> 5     SMB   WB    E    1988    6      1     72 1.59283 1.59283   NA   NA   NA
#> 6     SMB   WB    E    1988    7      1     80 1.91602 1.91602   NA   NA   NA
#>   inc5 inc6 inc7 inc8 inc9 inc10 inc11 inc12
#> 1   NA   NA   NA   NA   NA    NA    NA    NA
#> 2   NA   NA   NA   NA   NA    NA    NA    NA
#> 3   NA   NA   NA   NA   NA    NA    NA    NA
#> 4   NA   NA   NA   NA   NA    NA    NA    NA
#> 5   NA   NA   NA   NA   NA    NA    NA    NA
#> 6   NA   NA   NA   NA   NA    NA    NA    NA

## Use in.var with column numbers to convert to increments
SMBi3 <- gConvert(SMBassWB,in.var=8:19,out.type="inc")
head(SMBi3)
#>   species lake gear yearcap fish agecap lencap  radcap    inc1 inc2 inc3 inc4
#> 1     SMB   WB    E    1988    5      1     71 1.90606 1.90606   NA   NA   NA
#> 2     SMB   WB    E    1988    3      1     64 1.87707 1.87707   NA   NA   NA
#> 3     SMB   WB    E    1988    2      1     57 1.09736 1.09227   NA   NA   NA
#> 4     SMB   WB    E    1988    4      1     68 1.33108 1.31848   NA   NA   NA
#> 5     SMB   WB    E    1988    6      1     72 1.59283 1.59283   NA   NA   NA
#> 6     SMB   WB    E    1988    7      1     80 1.91602 1.91602   NA   NA   NA
#>   inc5 inc6 inc7 inc8 inc9 inc10 inc11 inc12
#> 1   NA   NA   NA   NA   NA    NA    NA    NA
#> 2   NA   NA   NA   NA   NA    NA    NA    NA
#> 3   NA   NA   NA   NA   NA    NA    NA    NA
#> 4   NA   NA   NA   NA   NA    NA    NA    NA
#> 5   NA   NA   NA   NA   NA    NA    NA    NA
#> 6   NA   NA   NA   NA   NA    NA    NA    NA

## Convert back to radial measurements
SMBr1 <- gConvert(SMBi1,in.pre="inc",out.type="rad")
head(SMBr1)
#>   species lake gear yearcap fish agecap lencap  radcap    rad1 rad2 rad3 rad4
#> 1     SMB   WB    E    1988    5      1     71 1.90606 1.90606   NA   NA   NA
#> 2     SMB   WB    E    1988    3      1     64 1.87707 1.87707   NA   NA   NA
#> 3     SMB   WB    E    1988    2      1     57 1.09736 1.09227   NA   NA   NA
#> 4     SMB   WB    E    1988    4      1     68 1.33108 1.31848   NA   NA   NA
#> 5     SMB   WB    E    1988    6      1     72 1.59283 1.59283   NA   NA   NA
#> 6     SMB   WB    E    1988    7      1     80 1.91602 1.91602   NA   NA   NA
#>   rad5 rad6 rad7 rad8 rad9 rad10 rad11 rad12
#> 1   NA   NA   NA   NA   NA    NA    NA    NA
#> 2   NA   NA   NA   NA   NA    NA    NA    NA
#> 3   NA   NA   NA   NA   NA    NA    NA    NA
#> 4   NA   NA   NA   NA   NA    NA    NA    NA
#> 5   NA   NA   NA   NA   NA    NA    NA    NA
#> 6   NA   NA   NA   NA   NA    NA    NA    NA