Is something like this what you're looking for?
fixSome <- function(..., fixed) {
fList <- list(...)
for (i in fixed) fList[[i]] <- fList[[i]][1]
do.call("expand.grid", fList)
}
> age <- c("young","mid","old")
> married <- c("no","yes")
> income <- c("low","high","medium")
> gender <- c("female","male")
>
> age.income.dat <- fixSome(age, married, income, gender, fixed=c(2, 4))
> age.income.dat
Var1 Var2 Var3 Var4
1 young no low female
2 mid no low female
3 old no low female
4 young no high female
5 mid no high female
6 old no high female
7 young no medium female
8 mid no medium female
9 old no medium female
Andy
> From: Jan Sabee
>
> Dear R-user,
> I have a data like this below,
>
> age <- c("young","mid","old")
> married <- c("no","yes")
> income <- c("low","high","medium")
> gender <- c("female","male")
>
> I want to make some of combination data like these,
>
> age.income.dat <- expand.grid(age, married[-c(2)], income,
> gender[-c(2)])
> age.income.dat
> age.married.dat <- expand.grid(age, married,
> income[-c(2:3)], gender[-c(2)])
> age.married.dat
> married.gender.dat <- expand.grid(age[-c(2:3)], married,
> income[-c(2:3)], gender)
> married.gender.dat
> married.income.gender.dat <- expand.grid(age[-c(2:3)], married,
> income, gender)
> married.income.gender.dat
> age.income.gender.dat <- expand.grid(age, married[-c(2)],
> income, gender)
> age.income.gender.dat
>
> On these data the first cell in each variable are fixed (no change).
> Because I only make some of variables what I need, How can I make
> these with a simple functions.
>
> Best reagrds,
> Jan Sabee
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
>
>