The function below works perfectly for my purpose. The display is wonderful. Now my problem is I need to be able to do it again, many times, on other variables that fit other patterns.
In this example, I’ve output results for “q4a”, I would like to be able to do it for sequences of questions that follow patterns like: q4 < a – z > or q < 4 – 10 >< a – z >, automagically.
Is there some way to iterate this such that the specified variable (in this case q4a) changes each time?
Here’s my function:
require(reshape) # Using it for melt
require(foreign) # Using it for read.spss
d1 <- read.spss(...) ## Read in SPSS file
attach(d1,warn.conflicts=F) ## Attach SPSS data
q4a_08 <- d1[,grep("q4a_",colnames(d1))] ## Pull in everything matching q4a_X
q4a_08 <- melt(q4a_08) ## restructure data for post-hoc
detach(d1)
q4aaov <- aov(formula=value~variable,data=q4a) ## anova
Thanks in advance!
Not sure if this is what you are looking for, but to generate the list of questions:
And then you turn your inner part of the analysis into a function that takes the question prefix as a parameter:
Now – I’m not sure where your ‘q4a’ variable is coming from (as used in the
aov(..., data=q4a)– so not sure what to do about that bit. But hopefully this helps.To put the two together you can use
sapply()to apply theanalyzeQuestionfunction to each of the prefixes that we automagically generated.