The pattern attribute contains information about the separator character used to name sub-questions in the data. Survey software typically makes use of underscores to distinguish sub-questions in a grid of questions, e.g. "Q4_1", "Q4_2", "Q4_3", "Q4_other". The function pattern()
returns the pattern
attribute, and pattern<- updates the attribute.
pattern(x)
pattern(x) <- value
surveydata object
New value
Other Attribute functions:
varlabels()
# Extract the pattern from membersurvey
oldptn <- pattern(membersurvey)
oldptn
#> $sep
#> [1] "_"
#>
#> $exclude
#> [1] "other"
#>
# The pattern is used to extract columns
names(membersurvey)
#> [1] "id" "Q1_1" "Q1_2" "Q2" "Q3_1" "Q3_2"
#> [7] "Q3_3" "Q3_4" "Q3_5" "Q3_6" "Q3_7" "Q3_8"
#> [13] "Q3_9" "Q3_10" "Q3_11" "Q3_12" "Q3_13" "Q3_14"
#> [19] "Q3_15" "Q4" "Q5" "Q6_1" "Q6_2" "Q6_3"
#> [25] "Q6_4" "Q6_5" "Q6_6" "Q6_7" "Q6_8" "Q6_9"
#> [31] "Q6_10" "Q7" "Q8" "Q9_1" "Q9_2" "Q9_3"
#> [37] "Q9_4" "Q9_5" "Q10" "Q11_1" "Q11_2" "Q11_3"
#> [43] "Q11_4" "Q11_5" "Q11_other" "Q12_1" "Q13_1" "Q13_2"
#> [49] "Q13_3" "Q13_4" "Q14_1" "Q14_2" "Q14_3" "Q14_4"
#> [55] "Q14_5" "Q14_6" "Q14_7" "Q14_8" "Q14_9" "Q14_10"
#> [61] "Q15_1" "Q15_2" "Q15_3" "Q15_4" "Q15_5" "Q15_6"
#> [67] "Q19_1" "Q19_2" "Q19_3" "Q19_4" "Q19_5" "Q19_6"
#> [73] "Q20_1" "Q20_2" "Q20_3" "Q20_4" "Q20_5" "Q20_6"
#> [79] "Q20_7" "Q20_8" "Q20_9" "Q20_10" "Q20_other" "Q21_1"
#> [85] "Q21_2" "Q21_3" "Q21_4" "Q21_5" "Q21_6" "Q23_1"
#> [91] "Q23_2" "Q23_3" "Q23_4" "Q23_5" "Q23_other" "Q24"
#> [97] "Q25" "Q26_1" "Q27_1" "Q27_2" "Q30" "Q30_other"
#> [103] "Q31" "Q31_other" "Q32" "Q33" "Q35" "weight"
#> [109] "size"
grep("Q20", names(membersurvey), value=TRUE)
#> [1] "Q20_1" "Q20_2" "Q20_3" "Q20_4" "Q20_5" "Q20_6"
#> [7] "Q20_7" "Q20_8" "Q20_9" "Q20_10" "Q20_other"
head(membersurvey["Q20"])
#> Q20_1 Q20_2 Q20_3 Q20_4 Q20_5 Q20_6 Q20_7 Q20_8 Q20_9 Q20_10
#> 1 Yes No No No No No No No No No
#> 2 No No No No No No No No No No
#> 3 No No No No No No No No No No
#> 4 Yes Yes No No No No No No No Yes
#> 5 No No No No No No No No No No
#> 6 No Yes No Yes Yes No No No No No
head(membersurvey["Q20_other"])
#> Q20_other
#> 1 <NA>
#> 2 <NA>
#> 3 <NA>
#> 4 <NA>
#> 5 I rarely attend business events in the evening
#> 6 <NA>
# Define a new pattern
pattern(membersurvey) <- list(sep="_", exclude="")
head(membersurvey["Q20"])
#> Q20_1 Q20_2 Q20_3 Q20_4 Q20_5 Q20_6 Q20_7 Q20_8 Q20_9 Q20_10
#> 1 Yes No No No No No No No No No
#> 2 No No No No No No No No No No
#> 3 No No No No No No No No No No
#> 4 Yes Yes No No No No No No No Yes
#> 5 No No No No No No No No No No
#> 6 No Yes No Yes Yes No No No No No
#> Q20_other
#> 1 <NA>
#> 2 <NA>
#> 3 <NA>
#> 4 <NA>
#> 5 I rarely attend business events in the evening
#> 6 <NA>
# Reset original pattern
pattern(membersurvey) <- oldptn
rm(oldptn)