Learn R Programming

memisc (version 0.99.27.2)

items-to-vectors: How Survey Items Are Converted into "Ordinary" Data Vectors

Description

Survey item objects in are numeric or character vectors with some extra information that may helpful for for managing and documenting survey data, but they are not suitable for statistical data analysis. To run regressions etc. one should convert item objects into "ordinary" numeric vectors or factors. This means that codes or values declared as "missing" (if present) are translated into the generial missing value NA, while value labels (if defined) are translated into factor levels.

Usage

# The following methods can be used to covert items into
# vectors with a given mode or into factors. 
# S4 method for item
as.vector(x, mode = "any")
# S4 method for item
as.numeric(x, …)
# S4 method for item
as.integer(x, …)
# S4 method for item.vector
as.factor(x)
# S4 method for item.vector
as.ordered(x)
# S4 method for item.vector
as.character(x, use.labels = TRUE, include.missings = FALSE, …)
# S4 method for datetime.item.vector
as.character()
# S4 method for Date.item.vector
as.character()
# The following methods are unlikely to be useful in practice, other than
# that they are called internally by the 'as.data.frame()' method for "data.set"
# objects.
# S3 method for character.item
as.data.frame(x, row.names = NULL, optional = FALSE, …)
# S3 method for double.item
as.data.frame(x, row.names = NULL, optional = FALSE, …)
# S3 method for integer.item
as.data.frame(x, row.names = NULL, optional = FALSE, …)
# S3 method for Date.item
as.data.frame(x, row.names = NULL, optional = FALSE, …)
# S3 method for datetime.item
as.data.frame(x, row.names = NULL, optional = FALSE, …)

Arguments

x

an object in class "item","item.vector", etc., as relevant for the respective conversion method.

mode

the mode of the vector to be returned, usually "numeric", "integer", or "charcater"

use.labels

logical,should value labels be used for creating the character vector?

include.missings

logical; if TRUE, declared missing values are not converted into NA, but into character strings with "*" as the "missingness marker" added at the beginning.

row.names

optional row names, see as.data.frame

optional

a logical value, see as.data.frame

other arguments, ignored.

Value

The function as.vector() returns a logical, numeric, or character depending on the mode= argument. If mode="any", the vector has the mode that corresponds to the (internal) mode of the item vector, that is, an item in class "integer.item" will become an integer vector, an item in class "double.item" will become a double-precision numeric vector, an item in class "character.item" will become a character vector; since the internal mode of a "dateitem.item" or a "Date.item" vector is numeric, a numeric vector will be returned.

The functions as.integer(), as.numeric(), as.character(), as.factor(), and as.ordered() return an integer, numeric, or character vector, or an ordered or unordered factor, respectively.

When as.data.frame() is applied to an survey item object, the result is a single-column data frame, where the single column is a numeric vector or character vector or factor depending on the measurement attribute of the item. In particular, if the measurement attribute equals "ratio" or "interval" this column will be the result of as.vector(), if the measurement attribute equals "ordinal" this column will be an ordered factor (see ordered), and if the measurement attribute equals "nominal" this column will be an unordered factor (see factor).

All these functions have in common that values declared as "missing" by virtue of the value.filter attribute will be turned into NA.

See Also

items annotation labels value.filter

Examples

Run this code
# NOT RUN {
  x <- as.item(rep(1:5,4),
      labels=c(
          "First"      = 1,
          "Second"     = 2,
          "Third"      = 3,
          "Fourth"     = 4,
          "Don't know" = 5
        ),
      missing.values=5,
      annotation = c(
        description="test"
      ))
  str(x)
  summary(x)
  as.numeric(x)

  test <- as.item(rep(1:6,2),labels=structure(1:6,
                                      names=letters[1:6]))

  as.factor(test)
  as.numeric(test)
  as.character(test)
  as.character(test,include.missings=TRUE)

  as.data.frame(test)[[1]]
# }

Run the code above in your browser using DataLab