Functions that allow you to access all rectangular data objects in the same way. Rectangular data objects include matrices, data frames and vectors.
as.rectangular(x)
as.char.rect(x)
is.rectangular(x)
subscript2d(x,i,j)
subscript2d(x,i,j) <- value
numRows(x)
numRows(x) <- value
numCols(x)
numCols(x) <- value
rowIds(x)
rowIds(x) <- value
colIds(x)
colIds(x) <- value
the object to be converted to rectangular data (as.rectangular
), or a
rectangular data object.
the first (row) subscript.
the second (column) subscript.
the object to be assign to x
as.rectangular
returns x
if it is already rectangular, or
as.data.frame(x)
if it is not.
as.char.rect
takes a rectangular object and returns a rectangular object (vector or matrix) consisting of character strings, suitable for printing (but not formatted to fixed width).
is.rectangular
returns TRUE
if x
is rectangular, and FALSE
if it is not.
subscript2d(x,i,j)
is like x[i,j,drop=F]
, except that it allows
x[,1]
(for example) for atomic vectors.
Usually, it returns an object of the same class as x
(this is not appropriate for some objects, such as "bs"
objects).
It does not support a drop
argument.
numRows
and numCols
return integers, like nrow
and ncol
,
except that they also work on atomic vectors (numRows
returns
the length of the vector, and numCols
returns 1).
rowIds
and colIds
return the IDs of the rows and columns.
These are often character vectors, but need not be,
depending on the class of x
.
They are like the components of dimnames
,
except that for named vectors, rowIds
returns or sets the names
and colIds
returns NULL
.
colnames
and rownames
return the same values as
colIds
and rowIds
, respectively.
subscript2d
, numRows
, numCols
, rowIds
,
colIds
can also be used on the left side of assignments. The value
can be a character vector, or anything that
can be coerced to a character vector.
subscript2d
is for subscripting. When subscript2d
is used in an assignment, it does not allow subscript replacement
outside the bounds of x
. Instead, set numRows
or
numCols
first.
When numRows
or numCols
is used in
an assignment, the row and column IDs are maintained
to have the correct length. Usually, this is done by setting numRows
on the ID vector,
but for some objects (for example, data frames)
this might not be appropriate, and they have their own methods.
Functions colnames<-
and rownames<-
simply call
colIds<-
and rowIds<-
, respectively.
as.rectangular
converts any object to a rectangular
data object (usually a data frame), if possible.
is.rectangular
tests whether an object is rectangular.
numRows
and numCols
count the number of rows and columns.
rowIds
and colIds
(and rownames
and
colnames
) return the row and column names or other
identifiers attached to rows and columns.
colnames
and rownames
return the same values as
colIds
and rowIds
, respectively, if do.NULL=T
.
Instead of using names
to replace row names from a matrix,
use rowIds
or dimnames
.
The functions colnames
, rownames
,
colnames<-
, rownames<-
emulate R
functions of the same names.
# NOT RUN {
x <- 1:10
y <- list(a=1:10, b=11:20)
is.rectangular(x)
y <- as.rectangular(y)
subscript2d(x,3,1)
subscript2d(y,4,1) <- 55
numRows(x)
numCols(y) <- 3
rowIds(x) <- letters[1:10]
colIds(y)
z <- cbind(1,1:4)
colnames(z)
colnames(z) <- colnames(z)
rownames(z) <- rownames(z)
# }
Run the code above in your browser using DataCamp Workspace