custom function to split data for list of variables

Hi I am looking for a function which can split a dataset when we pass a list as a input parameters. lets say i have data frame like below.

data<-data.frame( Q1=c(1,1,NA,NA,NA,NA,NA,NA,1,NA,NA,NA,NA,NA,NA,NA,NA,1,NA,NA,NA,1,1,1,NA,1,1,NA,NA,NA,NA,1,NA,NA,NA,NA,1,NA,1),
                  Q2=c(1,1,1,1,1,NA,NA,NA,NA,1,1,1,1,1,NA,NA,NA,1,1,1,NA,1,1,1,1,1,NA,NA,NA,1,1,1,1,1,1,1,NA,NA,NA),
                  Q3=c(1,1,NA,NA,NA,NA,NA,1,NA,NA,NA,NA,NA,NA,NA,NA,1,NA,NA,NA,NA,NA,1,1,1,NA,NA,NA,1,NA,NA,1,1,1,1,1,NA,NA,1),
                  Q4=c(1,NA,NA,NA,NA,NA,NA,NA,NA,NA,1,NA,NA,NA,NA,NA,NA,NA,1,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
                  Q5=c(NA,1,NA,NA,1,NA,1,1,NA,NA,1,NA,1,1,NA,1,NA,1,1,NA,1,NA,NA,1,NA,NA,1,NA,1,NA,NA,1,NA,1,NA,1,NA,1,NA),
                  Q6=c(1,NA,1,NA,NA,1,NA,NA,1,NA,1,NA,1,1,NA,1,1,NA,1,NA,1,1,NA,1,NA,1,1,1,1,1,1,1,NA,1,NA,1,1,NA,1),
                  Q7=c(NA,1,1,NA,1,NA,1,1,NA,NA,1,1,NA,NA,NA,1,1,NA,1,NA,1,1,NA,1,NA,1,NA,1,NA,1,NA,1,NA,1,NA,NA,1,1,NA),
                  region=c(1,2,1,1,1,2,1,2,2,1,2,NA,1,1,2,2,2,1,1,1,2,NA,2,1,1,1,2,2,2,NA,1,2,2,1,1,1,2,2,2)
)  

data$Q5<-factor(data$Q5, levels=c(1), labels=c("USA"))
data$Q6<-factor(data$Q6, levels=c(1), labels=c("Worlds"))
data$region<-factor(data$region, levels=c(1,2), labels=c("ALL","Special"))

and lets say I have a list like
lst <- c(total,data$Q6,data$Q5,.....)

The function will create a list of subset of data frames for lst

if lst have total then total data
for Q6 filter all non NA values and then create a whole subset for Q6
for Q5 filter all non NA values and then create a whole subset for Q5

for example Q5 the subset data will be...

Q1 Q2 Q3 Q4 Q5 Q6 Q7 region
1 1 1 NA USA NA 1 Special
NA 1 NA NA USA NA 1 ALL
NA NA NA NA USA NA 1 ALL
NA NA 1 NA USA NA 1 Special
NA 1 NA 1 USA Worlds 1 Special
NA 1 NA NA USA Worlds NA ALL
NA 1 NA NA USA Worlds NA ALL
NA NA NA NA USA Worlds 1 Special
1 1 NA NA USA NA NA ALL
NA 1 NA 1 USA Worlds 1 ALL
NA NA NA NA USA Worlds 1 Special
1 1 1 NA USA Worlds 1 ALL
1 NA NA NA USA Worlds NA Special
NA NA 1 NA USA Worlds NA Special
1 1 1 NA USA Worlds 1 Special
NA 1 1 NA USA Worlds 1 ALL
NA 1 1 NA USA Worlds NA ALL
NA NA NA NA USA NA 1 Special

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.