2.2.1.generic.pems.handlers {pems.utils} | R Documentation |
pems objects can be manipulated using generic functions like print, plot and summary in a similar fashion to objects of other R classes.
## S3 method for class 'pems' as.data.frame(x,...) ## S3 method for class 'pems' dim(x, ...) ## S3 method for class 'pems' x$name, ... ## S3 replacement method for class 'pems' x$name, ... <- value ## S3 method for class 'pems' x[i, j, ..., force = FALSE, simplify = TRUE] ## S3 replacement method for class 'pems' x[i, j, ..., force = FALSE] <- value ## S3 method for class 'pems' x[[k, ...]] ## S3 replacement method for class 'pems' x[[k, ...]] <- value ## S3 method for class 'pems' with(data, expr, ...) ## S3 method for class 'pems' subset(x, ...) ## S3 method for class 'pems' names(x, ...) ## S3 replacement method for class 'pems' names(x, ...) <- value ## S3 method for class 'pems' print(x,..., rows=NULL, cols=NULL, width=NULL) ## S3 method for class 'pems' plot(x, id = NULL, ignore = "time.stamp", n = 3, ...) ## S3 method for class 'pems' head(x, n = 6, ...) ## S3 method for class 'pems' tail(x, n = 6, ...) ## S3 method for class 'pems' summary(object, ...) ## S3 method for class 'pems' na.omit(object, ...) ## S3 method for class 'pems' units(x) ## S3 replacement method for class 'pems' units(x) <- value
x, object, data |
(An Object of pems class). For direct use with |
name |
Element name, which operates in a similar fashion to |
i, j |
Row and column (elements) indices, which operate as a stricter version of
|
k |
Structural indices. See Note below. |
expr |
(Expression) For |
value |
(vector, data.frame or pems) An object to be inserted into a |
... |
Addition options, typically passed to associated default method(s). |
force |
(Logical or character) Data element handling options. |
simplify |
(Logical) |
id, ignore |
(local plot parameters). |
rows, cols, width |
(numerics, optional). For |
n |
(various). For |
Generic functions provide appropriate (conventional) handling of objects of
'pems'
class:
as.data.frame(pems)
extracts the data.frame
component of a
pems object.
dim(pems)
extracts the dimensions, row count and column count,
respectively, of the data.frame
component of a pems object. The
function also allows nrow(pems)
and ncol(pems)
.
pems$name
extracts the named element from a pems objects
in a similar fashion to data.frame$name
. Likewise,
pems$name <- value
inserts value
into a pems objects
in a similar fashion to data.frame$name <- value
.
pems.object[i, j]
extracts the [i,j] elements of the data held in a
pems
object. This is returned as either a pems
or pems.element
object depending on the dimension of the extracted data and the simplify
setting.
pems.object[i, j]<-
insert value
into the [i,j] region of the supplied
pems
object. By default this action is strict and mismatching pems[i, j]
and value
dimension produce an error, although mismatching insertions may be
forced using the force
argument.
pems.object[[k]]
extracts structural elements of a pems object:
data
, the data.frame
; units
the unit table, etc.
with(pems.object, expression)
evaluates the supplied expression
using the elements of the supplied pems.object
.
subset(pems.object, expression)
behaves like
subset(data.frame, expression)
.
print(pems.object)
provides a (to console) description of a pems
object. This forshortens large datasets in a similar fashion to a tibble.
plot(pems.object)
generates a standard R plot using selected data series in
a pems
object.
names(pems.object)
returns a vector of the names of data series held in a
pems
object when used in the form names(pems)
or resets names when
used in the form names(pems) <- new.names
.
na.omit(pems.object)
returns the supplied pems
object with all rows
including NAs removed.
summary(pems.object)
generates a summary report for data series held in a
pems
object.
units(pems.object)
extracts the units from a supplied pems
object
when used in the form units(pems)
or sets/resets units when used in the form
units(pems) <- new.units
.
The pems
object is intended to be a stricter version of a standard R
data.frame
. Unless the user specifically forces the operation, a pems[]
or pems[]<-
call is not allowed unless it fits exactly. So, for example by default
the call pems[,1]<-10
will not place 10 in every row of column one in the
same fashion as data.frame[,1]<-10
.
The logic behind this is that columns (elements) of pems
objects are time-series.
So, users would want to place these exactly and avoid any unintended wrapping. The
force
argument should be used in cases where data padding or wrapping operations
are required.
pems$name
and pems$name<-
are not are rigorously managed, so behave more
like data.frame$name
and data.frame$name<-
calls, although even these do
wrap by default.
pems[[]]
provides access to structural components of the pems
object,
e.g. pems[["data"]]
extracts the data.frame
component of the pems
object, pems[["units"]]
extracts the units
component, etc. See also
pems.structure
.
Karl Ropkins
generics in general:
H. Wickham. Advanced R. CRC Press, 2014.
(Not yet fully implemented within this package.)
##example 1 ##basics pems handling #extract a subset pems object from pems.1 a <- pems.1[1:4, 1:5] a #indices work like data.frame #a[x] and a[,x] recovers element/column number x #a[x,] recovers row number x #a["name"] and a[,"name"] recovers element/column named "name" #a[4:5, "name"] recovers rows 4 to 5 of element/column named "name" #a[x,y] <- z inserts z into a at row x, element y #etc #insert 10 in at element 3, row 2 a[2,3] <- 10 a #replace element conc.co2 with conc.co a["conc.co2"] <- a$conc.co a #Note: by default pems objects subsetting and inserting is #more rigorous than data.frame subsetting/insertion #for example, a[1:2, "conc.hc"] <- 8 would generate error #because the target, a[1:2], and insert, 8, dimensions do not #match exactly: target 2 x 1; insert 1 x 1 #By default no wrapping is applied. #the force argument allows the user to control how mismatching #targets and insertions are handled #na pad target for larger insert a[1:2, "conc.hc", force="na.pad.target"] <- 1:5 a #Note here when the target is padded existing enteries are NOT #overwritten if they are not declared in a[], and the next #previously unassigned cells are used for any extra cases in #the insert. #wrap insert to fill hole made by a[i,j] a[1:2, "conc.hc", force="fill.insert"] <- 8 a #pems$name <- value is equivalent to #pems[name, force=c("na.pad.target", "na.pad.insert")] a$new <- 1:4 a