Skip to content
Back to formatted view

Raw Message

Message-ID: <2222330D-1F9A-414F-A237-E2600CEB4093@gmail.com>
Date: 2013-06-12T11:54:19Z
From: Peter Dalgaard
Subject: change factor to mtrix
In-Reply-To: <CAKO0Dpjo9GcB3ay78bpnsqpYA1MVvT-DTTU5Sf9enO18zgwasw@mail.gmail.com>

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