wqData is a constructor for the "WqData" class that is often more convenient to use than new. It converts a data.frame containing water quality data in “long” or “wide” format to a "WqData" object. In “long” format, observations are all in one column and a second column is used to designate the variable being observed. In “wide” format, observations for each variable are in a separate column.

wqData(
  data,
  locus,
  wqdata,
  site.order,
  time.format = "%Y-%m-%d",
  type = c("long", "wide")
)

Arguments

data

Data frame containing water quality data.

locus

Character or numeric vector designating column names or numbers, respectively, in data that correspond to time, site and depth.

wqdata

In the case of “long” data, character or numeric vector designating column names or numbers, respectively, in data that correspond to variable and value. In the case of “wide” data, character or numeric vector designating column names or numbers, respectively, in data that denote water quality variable data.

site.order

If TRUE, site factor levels will be ordered in alphanumeric order.

time.format

Conversion specification for time defined by ISO C/POSIX standard (see strptime).

type

Either “long” or “wide” data.

Value

An object of class "WqData".

Details

If the data are already in long format, the function has little to do but rename the data fields. If in wide format, the reshape2 package is called to melt the data. The function also removes NA observations, converts site to (possibly ordered) factors with valid variable names, and converts time to class "Date" or "POSIXct" and ISO 8601 format, depending on time.format.

References

International Organization for Standardization (2004) ISO 8601. Data elements and interchange formats - Information interchange - Representation of dates and times.

Author

Alan Jassby, James Cloern

Examples

if (FALSE) { 

# Create new WqData object from sfbay data. First combine date and time
# into a single string after making sure that all times have 4 digits.
sfb <- within(sfbay, time <- substring(10000 + time, 2, 5))
sfb <- within(sfb, time <- paste(date, time, sep = ' '))
sfb <- wqData(sfb, 2:4, 5:12, site.order = TRUE, type = "wide",
    time.format = "%m/%d/%Y %H%M")

head(sfb)
tail(sfb)

# If time of day were not required, then the following would suffice:
sfb <- wqData(sfbay, c(1,3,4), 5:12, site.order = TRUE, type = "wide", 
  time.format = "%m/%d/%Y")
}