surveydata-package | R Documentation |
Tools, classes and methods to manipulate survey data.
Surveydata objects have been designed to function with SPSS export data, i.e. the result of an SPSS import, foreign::read.spss()
. This type of data is contained in a data.frame, with information about the questionnaire text in the variable.labels
attribute. Surveydata objects keep track of the variable labels, by offering methods for renaming, subsetting, etc.
Coercion functions:
as.surveydata()
is.surveydata()
as.data.frame.surveydata()
To access and modify attributes:
pattern()
varlabels()
To subset or merge surveydata objects:
merge()
Extract()
cbind.surveydata()
To extract question text from varlabels:
question_text()
question_text_common()
question_text_unique()
To fix common encoding problems:
encToInt()
intToEnc()
fix_common_encoding_problems()
To clean data:
remove_dont_know()
to remove "Don't know" responses
remove_all_dont_know()
to remove "Don't know" responses from all questions
fix_levels_01()
to fix level formatting of all question with Yes/No type answers
Miscellaneous tools:
dropout()
to determine questions where respondents drop out
Andrie de Vries apdevries@gmail.com
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"])
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.