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 |