[R] change factor to mtrix

peter dalgaard pdalgd at gmail.com
Wed Jun 12 13:54:19 CEST 2013


On Jun 12, 2013, at 09:47 , Gallon Li wrote:

> i wish to change a column of factor variable to multiple columns of
> zero-ones
> 
> for example, my factor could be
> 
> ff=c('a','a','b','b','c','c')
> 
> then I want to have two columns (for three levels) that are
> 
> 0 0
> 0 0
> 1 0
> 1 0
> 0 1
> 0 1
> 
> how can i do this fast?

Maybe not fast, but quick:

> fff <- factor(ff)
> model.matrix(~fff)[,-1]
  fffb fffc
1    0    0
2    0    0
3    1    0
4    1    0
5    0    1
6    0    1

Possibly faster, skipping some "red tape":

> CC <- contrasts(fff)
> CC
  b c
a 0 0
b 1 0
c 0 1
> CC[fff,]
  b c
a 0 0
a 0 0
b 1 0
b 1 0
c 0 1
c 0 1



> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at r-project.org mailing list
> 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.

-- 
Peter Dalgaard, Professor
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



More information about the R-help mailing list