Update the data variables in a survey design, either with a formula for a new set of variables or with an expression for variables to be added.

# S3 method for survey.design
update(object, ...)
# S3 method for twophase
update(object, ...)
# S3 method for svyrep.design
update(object, ...)
# S3 method for DBIsvydesign
update(object, ...)



a survey design object


Arguments tag=expr add a new variable tag computed by evaluating expr in the survey data.


Database-backed objects may not have write access to the database and so update does not attempt to modify the database. The expressions are stored and are evaluated when the data is loaded.

If a set of new variables will be used extensively it may be more efficient to modify the database, either with SQL queries from the R interface or separately. One useful intermediate approach is to create a table with the new variables and a view that joins this table to the table of existing variables.

There is now a base-R function transform for adding new variables to a data frame, so I have added transform as a synonym for update for survey objects.


A survey design object


dstrat<-svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat,
dstrat<-update(dstrat, apidiff=api00-api99)
svymean(~api99+api00+apidiff, dstrat)
#>            mean     SE
#> api99   629.395 9.9639
#> api00   662.287 9.4089
#> apidiff  32.893 2.0511