In the limma vignette page 44, a simple 2 factorial example is given. My case follows something similar, where I have treatment and time.
TS <- paste(targets$Strain, targets$Treatment, sep=".")
TS <- factor(TS, levels=c("WT.U","WT.S","Mu.U","Mu.S"))
design <- model.matrix(~0+TS)
colnames(design) <- levels(TS)
The resulting design contains all possible columns.
In my case, I'm trying to do the same, but specifying different columns (strain and treatment), and then specifying design = model.matrix(~0 + strain + treatment, data=targets), but this results in 1 less column in strain and in treatment. I already know that a workaround is to merge everything as shown above and in the vignette, but why can't I do it in the same way when I specify data=targets?
Note that I have assigned the intercept as 0 just like in the design above.
From which package does that come from? And taking the example of the vignette for instance, how would you do that?