\HeaderA{shingles}{shingles}{shingles}
\aliasA{as.data.frame.shingle}{shingles}{as.data.frame.shingle}
\aliasA{as.factorOrShingle}{shingles}{as.factorOrShingle}
\aliasA{as.shingle}{shingles}{as.shingle}
\aliasA{equal.count}{shingles}{equal.count}
\aliasA{is.shingle}{shingles}{is.shingle}
\aliasA{plot.shingle}{shingles}{plot.shingle}
\aliasA{print.shingle}{shingles}{print.shingle}
\aliasA{print.shingleLevel}{shingles}{print.shingleLevel}
\aliasA{shingle}{shingles}{shingle}
\aliasA{summary.shingle}{shingles}{summary.shingle}
\aliasA{[.shingle}{shingles}{[.shingle}
\keyword{print}{shingles}
\keyword{hplot}{shingles}
\keyword{methods}{shingles}
\keyword{classes}{shingles}
\begin{Description}\relax
Functions to handle shingles
\end{Description}
\begin{Usage}
\begin{verbatim}
shingle(x, intervals=sort(unique(x)))
equal.count(x, ...)
as.shingle(x)
is.shingle(x)
## S3 method for class 'shingle':
plot(x, col, aspect, ...)
## S3 method for class 'shingle':
print(x, showValues = TRUE, ...)
## S3 method for class 'shingleLevel':
print(x, ...)
## S3 method for class 'shingle':
summary(object, ...)
## S3 method for class 'shingle':
as.data.frame(x, row.names = NULL, optional = FALSE)
## S3 method for class 'shingle':
x[subset, drop = FALSE]
as.factorOrShingle(x, subset, drop)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{x}] numeric variable or R object, shingle in \code{plot.shingle} and
\code{x[]}. An object (list of intervals) of class "shingleLevel" in
\code{print.shingleLevel}

\item[\code{object}] shingle object to be summarized
\item[\code{showValues}] logical, whether to print the numeric part. If
FALSE, only the intervals are printed
\item[\code{row.names}] a character vector giving the row names for the data frame
\item[\code{optional}] logical. If `TRUE', setting row names is optional
\item[\code{intervals}] numeric vector or matrix with 2 columns
\item[\code{subset}] logical vector
\item[\code{drop}] whether redundant shingle levels are to be dropped
\item[\code{col}] color to fill the rectangles, defaults to
\code{bar.fill\$col}
\item[\code{aspect}] aspect ratio
\item[\code{...}] other arguments, passed to \code{co.intervals}
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
A shingle is a data structure used in Trellis, and is meant to be a
generalization of factors to `continuous' variables. It consists of a
numeric vector along with some possibly overlapping intervals. These
intervals are the `levels' of the shingle. The \code{levels} and
\code{nlevels} functions, usually applicable to factors, are also
applicable to shingles.

There are print methods for shingles, as well as for printing the
result of \code{levels()} applied to a shingle.

The implementation of shingles is slightly different from S.

\code{equal.count} converts \code{x} to a shingle. Essentially a
wrapper around \code{co.intervals}. All arguments are passed to
\code{co.intervals}

\code{shingle} creates a shingle using the given \code{intervals}. If
\code{intervels} is a vector, these are used to form 0 length
intervals.

\code{as.shingle} returns \code{shingle(x)} if \code{x} is not a
shingle.

\code{is.shingle} tests whether \code{x} is a shingle.

\code{plot.shingle} displays the ranges of shingles via
rectangles. \code{print.shingle} and \code{summary.shingle} describe
the shingle object.
\end{Details}
\begin{Value}
\code{x\$intervals} for \code{levels.shingle(x)}, 
logical for \code{is.shingle}, an object of class ``trellis'' for
\code{plot} (printed by default by \code{print.trellis}), and 
an object of class ``shingle'' for the others.
\end{Value}
\begin{Author}\relax
Deepayan Sarkar \email{Deepayan.Sarkar@R-project.org}
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{xyplot}{xyplot}},
\code{\LinkA{co.intervals}{co.intervals}}, \code{\LinkA{Lattice}{Lattice}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
z <- equal.count(rnorm(50))
plot(z)
print(z)
print(levels(z))

\end{ExampleCode}
\end{Examples}

