x<-gl(4,1,12,labels=c('Lev1','Lev2','Lev3','Lev4')) be<-c(2,3,-1,5) Cmat<-diag(1,4);Cmat[2:4,1]<--1 Cmat mean.vec<-be[as.numeric(x)] set.seed(4387) y<-rnorm(length(x),mean.vec,1) data.frame(x,y) summary(lm(y~x)) ################################################### (x1<-gl(5,1,10)) (x2<-gl(2,5,10)) be1<-c(-2,2,3,0,1) be2<-c(0,2) mean.vec<-be1[as.numeric(x1)]+be2[as.numeric(x2)] set.seed(4387) y<-rnorm(length(x1),mean.vec,1) data.frame(x1,x2,y) summary(lm(y~x1+x2))