memisc (version 0.99.17.1)

codeplan: Describe structure of Data Sets and Importers

Description

The function codeplan() creates a data frame that describes the structure of an item list (a data.set object or an importer object), so that this structure can be stored and and recovered. The resulting data frame has a particular print method that delimits the output to one line per variable.

With setCodeplan an item list structure (as returned by codeplan()) can be applied to a data frame or data set. It is also possible to use an assignment like codeplan(x) <- value to a similar effect.

Usage

codeplan(x)
# S4 method for item.list
codeplan(x)
setCodeplan(x,value)
# S4 method for data.frame,codeplan
setCodeplan(x,value)
# S4 method for data.set,codeplan
setCodeplan(x,value)
codeplan(x) <- value

Arguments

x

for codeplan(x) an object that inherits from class "item.list", i.e. can be a "data.set" object or an "importer" object; for codeplan(x) <- value or setCodeplan(x,value) a data frame.

value

an object as it would be returned by codeplan(x)

Value

codeplan returns a data frame with additional S3 class attribute "codeplan". Such a data frame has the following variables:

  • name: The name of the item/variable in the item list or data set.

  • description: The description/variable label string of the item/variable.

  • annotation: code to recreate the annotation attribute,

  • labels: code to recreate the value labels,

  • value.filter: code to recreate the value filter attribute (declaration of missing values, range of valid values, or an enumeration of valid values.)

  • mode: a character string that describes storage mode, such as "character", "integer", or "numeric".

  • measurement: a character string with the measurement level, "nominal", "ordinal", "interval", or "ratio".

Examples

Run this code
# NOT RUN {
Data1 <- data.set(
          vote = sample(c(1,2,3,8,9,97,99),size=300,replace=TRUE),
          region = sample(c(rep(1,3),rep(2,2),3,99),size=300,replace=TRUE),
          income = exp(rnorm(300,sd=.7))*2000
          )

Data1 <- within(Data1,{
  description(vote) <- "Vote intention"
  description(region) <- "Region of residence"
  description(income) <- "Household income"
  foreach(x=c(vote,region),{
    measurement(x) <- "nominal"
    })
  measurement(income) <- "ratio"
  labels(vote) <- c(
                    Conservatives         =  1,
                    Labour                =  2,
                    "Liberal Democrats"   =  3,
                    "Don't know"          =  8,
                    "Answer refused"      =  9,
                    "Not applicable"      = 97,
                    "Not asked in survey" = 99)
  labels(region) <- c(
                    England               =  1,
                    Scotland              =  2,
                    Wales                 =  3,
                    "Not applicable"      = 97,
                    "Not asked in survey" = 99)
  foreach(x=c(vote,region,income),{
    annotation(x)["Remark"] <- "This is not a real survey item, of course ..."
    })
  missing.values(vote) <- c(8,9,97,99)
  missing.values(region) <- c(97,99)
})
cpData1 <- codeplan(Data1)

Data2 <- data.frame(
          vote = sample(c(1,2,3,8,9,97,99),size=300,replace=TRUE),
          region = sample(c(rep(1,3),rep(2,2),3,99),size=300,replace=TRUE),
          income = exp(rnorm(300,sd=.7))*2000
          )
codeplan(Data2) <- cpData1
codebook(Data2)
# }

Run the code above in your browser using DataLab