[R] How to store and manipulate survey data like this?

Siraaj Khandkar siraaj at khandkar.net
Tue Aug 13 18:41:58 CEST 2013


On 08/13/2013 12:17 PM, Walter Anderson wrote:
> I have to process a set of survey data with questions that are formatted
> like this;
>
> 1) Pick your top three breeds (pick 3)
>   1  Rottweiler
>   2  Pit Bull
>   3  German Shepard
>   4  Poodle
>   5  Border Collie
>   6  Dalmation
>   7  Mixed Breed
>
> and the answers are formatted like this:
>
> Respondent, Question1
> 1, "1,4,7"
> 2, "2,7,5"
> 3, "6,3,5"
> 4, ""
> ...
>
> Any suggestions on how to preprocess the file to be able to do things
> like frequency analysis for breeds?
>

Here's how I would get started:


 > survey <- read.csv("survey.csv", as.is=TRUE)
 > survey
   Respondent Question1
1          1     1,4,7
2          2     2,7,5
3          3     6,3,5
4          4
 >
 > TipleOrNAs <- function(x) {if (length(x) == 3) x else c(NA, NA, NA)}
 > options <- lapply(strsplit(survey$Question1, ","), TripleOrNAs)
 > options <- matrix(unlist(options), ncol=3, byrow=TRUE)
 > survey2 <- cbind(survey, options)
 > names(survey2) <- c(names(survey), paste("Q1.Opt", 1:3, sep="."))
 > survey2
   Respondent Question1 Q1.Opt.1 Q1.Opt.2 Q1.Opt.3
1          1     1,4,7        1        4        7
2          2     2,7,5        2        7        5
3          3     6,3,5        6        3        5
4          4               <NA>     <NA>     <NA>



More information about the R-help mailing list