as.surveydata: Coercion from and to surveydata.

View source: R/surveydata.R

as.surveydataR Documentation

Coercion from and to surveydata.

Description

Methods for creating surveydata objects, testing for class, and coercion from other objects.

Usage

as.surveydata(
  x,
  sep = "_",
  exclude = "other",
  ptn = pattern(x),
  defaultPtn = list(sep = sep, exclude = exclude),
  renameVarlabels = FALSE
)

un_surveydata(x)

Arguments

x

Object to coerce to surveydata

sep

Separator between question and sub-question names

exclude

Excludes from pattern search

ptn

A list with two elements, sep and exclude. See pattern() and which.q() for more detail.

defaultPtn

The default for ptn, if it doesn't exist in the object that is being coerced.

renameVarlabels

If TRUE, turns variable.labels attribute into a named vector, using names(x) as names.

Details

The functionun_surveydata() removes the surveydata class from the object, leaving intact the other classes, e.g. data.frame or tibble

See Also

surveydata-package, is.surveydata()

Examples

library(surveydata)

# Create surveydata object

sdat <- data.frame(
    id   = 1:4,
    Q1   = c("Yes", "No", "Yes", "Yes"),
    Q4_1 = c(1, 2, 1, 2), 
    Q4_2 = c(3, 4, 4, 3), 
    Q4_3 = c(5, 5, 6, 6), 
    Q10 = factor(c("Male", "Female", "Female", "Male")),
    crossbreak  = c("A", "A", "B", "B"), 
    weight      = c(0.9, 1.1, 0.8, 1.2)
)

varlabels(sdat) <- c(
    "RespID",
    "Question 1", 
    "Question 4: red", "Question 4: green", "Question 4: blue", 
    "Question 10",
    "crossbreak",
    "weight"
  )

sv <- as.surveydata(sdat, renameVarlabels = TRUE)

# Extract specific questions
sv[, "Q1"]
sv[, "Q4"]

# Query attributes
varlabels(sv)
pattern(sv)

# Find unique questions

questions(sv)
which.q(sv, "Q1")
which.q(sv, "Q4")

# Find question text
question_text(sv, "Q1")
question_text(sv, "Q4")

question_text_common(sv, "Q4")
question_text_unique(sv, "Q4")


# Basic operations on a surveydata object, illustrated with the example dataset membersurvey

class(membersurvey)

questions(membersurvey)

which.q(membersurvey, "Q1")
which.q(membersurvey, "Q3")
which.q(membersurvey, c("Q1", "Q3"))

question_text(membersurvey, "Q3")
question_text_unique(membersurvey, "Q3")
question_text_common(membersurvey, "Q3")

# Extracting columns from a surveydata object

head(membersurvey[, "Q1"])
head(membersurvey["Q1"])
head(membersurvey[, "Q3"])
head(membersurvey[, c("Q1", "Q3")])

# Note that the result is always a surveydata object, even if only one column is extracted

head(membersurvey[, "id"])
str(membersurvey[, "id"])


andrie/surveydata documentation built on March 13, 2023, 2 a.m.