codeplan
Describe structure of Data Sets and Importers
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)
# S4 method for item
codeplan(x)
setCodeplan(x,value)
# S4 method for data.frame,codeplan
setCodeplan(x,value)
# S4 method for data.set,codeplan
setCodeplan(x,value)
# S4 method for data.set,NULL
setCodeplan(x,value)
# S4 method for item,codeplan
setCodeplan(x,value)
# S4 method for item,NULL
setCodeplan(x,value)
# S4 method for atomic,codeplan
setCodeplan(x,value)
# S4 method for atomic,NULL
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, it can also be an object that inherits from class"item"
- value
an object as it would be returned by
codeplan(x)
orNULL
.
Value
If applicable, codeplan
returns a data frame with
additional S3 class attribute "codeplan"
. For arguments for
which the relevant information does not exist, the function returns NULL
.
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
# 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)
# Note the difference between 'as.data.frame' and setting
# the codeplan to NULL:
Data2df <- as.data.frame(Data2)
codeplan(Data2) <- NULL
str(Data2)
str(Data2df)
# Codeplans of survey items can also be inquired and manipulated:
vote <- Data1$vote
str(vote)
cp.vote <- codeplan(vote)
codeplan(vote) <- NULL
str(vote)
codeplan(vote) <- cp.vote
vote
# }