It can handle one more simplification step # Rich Heiberger, removing intercept, including haireye data haireye.df <- cbind( as.data.frame(haireye), model.matrix(Freq ~ Hair + Eye, data=haireye, contrasts.arg=list(Hair=diag(4), Eye=diag(4)))[,-1] ) haireye.df
On Tue, Dec 30, 2014 at 9:15 PM, Michael Friendly <frien...@yorku.ca> wrote: > On 12/30/14 7:16 PM, Richard M. Heiberger wrote: >> >> I like this very simple version. Note that you don't need >> as.data.frame(). >> >> model.matrix(Freq ~ Hair + Eye, data=haireye, >> contrasts.arg=list(Hair=diag(4), Eye=diag(4))) > > Thanks to all who replied to this question. model.matrix() was what I had > missed, but to > get the result in the form I wanted, required a bit more work. These > solutions give me > what I asked for. > > haireye <- margin.table(HairEyeColor, 1:2) > > # Jeff Newmiller, solution 2, corrected > > haireye.df <- as.data.frame(haireye) > dummykeys <- data.frame( h = factor( as.integer( haireye.df$Hair ) ) > , e = factor( as.integer( haireye.df$Eye ) ) ) > dummy.hair <- as.data.frame( model.matrix( ~ h - 1, data=dummykeys )) > dummy.eye <- as.data.frame( model.matrix( ~ e - 1, data=dummykeys )) > haireye.df <- data.frame( haireye.df, dummy.hair, dummy.eye ) > > > # Rich Heiberger, removing intercept, including haireye data > haireye.df <- as.data.frame(haireye) > haireye.df <- cbind( > haireye.df, > model.matrix(Freq ~ Hair + Eye, data=haireye, > contrasts.arg=list(Hair=diag(4), Eye=diag(4)))[,-1] > ) > haireye.df > > > > > -- > Michael Friendly Email: friendly AT yorku DOT ca > Professor, Psychology Dept. & Chair, Quantitative Methods > York University Voice: 416 736-2100 x66249 Fax: 416 736-5814 > 4700 Keele Street Web: http://www.datavis.ca > Toronto, ONT M3J 1P3 CANADA > ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.