dot
handling in model.matrix()
method when setting up the
terms (reported by Kevin Tappe).model.part()
method tries to avoid calling has_dot()
by checking the
data attributes first. This can greatly improve speed when there are lots
of variables in a model part that is actually not of interest.Extended processing of formulas with one or more .
on the
right-hand side: In addition to "separate"
and "sequential"
processing,
there is now dot = "previous"
which resolves the .
relative to
the previous right-hand side part.
model.part()
failed in case of variables/terms with very long
names. Now deparse(..., width.cutoff = 500)
is used to support
very long variable names as well.
Enhance Formula()
so that if a Formula
is supplied it is simply
returned unchanged (rather than throwing a warning).
Enhance update()
method for Formula
object so that also the "new"
formula can be a Formula
object.
cbind()
, log()
, or Surv()
) and one ore more .
on the
right-hand side. The terms()
and hence the model.frame()
now work
smoothly. When using model.part()
the same Formula
(plus dot
argument) has to be supplied when preparing the model.frame()
and
the model.part()
..
on the
right-hand side.str()
method.CITATION
was incorrect and is fixed now.All methods returning formula
or Formula
objects now preserve the
environment of the originally supplied object by default.
The default and formula methods of as.Formula()
methods now also take
an env
argument.
terms = FALSE
argument to model.part()
method for Formula
objects. This can be leveraged when processing multiple offsets.
For example for y ~ x + offset(o1) | z + offset(o2)
. See ?model.part
for a worked example.Package now published in Journal of Statistical Software:
doi:10.18637/jss.v034.i01
and citation("Formula")
within R.
Added an all.equal()
method for Formula
objects that produces
more intelligible output in case the result is not TRUE
.
Fixed an error of the update()
method for Formula
objects
without LHS.
Major revision (not fully backward compatible) to enable support
for multiple responses and multiple parts on the right-hand side
such as
y1 | y2 ~ x
,
y1 + y2 ~ x1 + x2 | z1
, or
y ~ u1 + u2 | v1 | x1 + x2
and combinations of these.
Formula
objects now consist of the original formula plus two
attributes "lhs"
and "rhs"
that contain the parts of the decomposed
left- and right-hand side, respectively.
Most methods take arguments "lhs"
and "rhs"
which allow selection
of the desired parts on the left- and right-hand side respectively,
e.g., in a model.frame()
or model.matrix()
.
The previous arguments response = TRUE
/FALSE
and
part = "first"
/"second"
/"both"
were not flexible enough anymore
and have been deprecated. Use the streamlined lhs
/rhs
arguments
instead.
vignette("Formula", package = "Formula")
illustrates usage of
the tools provided by the package and explains the ideas underlying
its implementation.
Added CITATION
file.
Added a has.intercept()
function with methods for formula
and
Formula
objects.
Change the default value for model.frame.Formula
: "both"
for a
two-part formula and "first"
otherwise.
as.Formula()
failed for very long formulas.First CRAN release of package Formula
for extended
formula processing. This package is still under development
and the interface might change in future versions.
Currently, this enables processing of formulas such as
y ~ x1 + x2 | z1 + z2 + z3
with two parts on the right hand side.
Generalization to further formulas are planned (i.e.,
not implemented yet), e.g.,
y1 + y2 ~ x1 + x2 + x3
or
y ~ x1 + x2 | u1 | v1 + v2 + v3 | ...
i.e., multiple responses and multi-part formulas.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.