[R] categorical column to numeric column

Petr Pikal petr.pikal at precheza.cz
Tue Feb 20 07:00:27 CET 2007


Hi

On 19 Feb 2007 at 9:11, Duncan Murdoch wrote:

Date sent:      	Mon, 19 Feb 2007 09:11:52 -0500
From:           	Duncan Murdoch <murdoch at stats.uwo.ca>
To:             	Shubha Vishwanath Karanth <shubhak at ambaresearch.com>
Copies to:      	r-help <R-help at stat.math.ethz.ch>
Subject:        	Re: [R] categorical column to numeric column

> On 2/19/2007 8:36 AM, Shubha Vishwanath Karanth wrote:
> > Hi R,
> > 
> >  
> > 
> > Let 'dd' be a data frame given as:
> > 
> >  
> > 
> > dd=data.frame(aa=c("a","a","b","a","b","b"),bb=c(1,1,1,2,3,4))
> > 
> >  
> > 
> > Now I want to create a column 'g' such that if dd$aa=a then dd$g=1
> > else dd$g= -1 .
> > 
> >  
> > 
> > So, I gave the below syntax:
> > 
> >  
> > 
> > if((dd$aa)=="a") dd$g=1 else dd$g= -1
> 
> if() looks at just the first entry; it's designed for flow of control
> rather than vectorized calculations.  You want ifelse():
> 
> ifelse( dd$aa == "a", 1, -1)

Another approach is to use the fact that logical vector can be 
interpreted as 1 and 0 vector

(dd$a=="a")*2-1

HTH
Petr


> 
> Duncan Murdoch
> >  
> > 
> > But I get the error message as:
> > 
> > Warning message: 
> > 
> > the condition has length > 1 and only the first element will be used
> > in: if ((dd$aa) == "a") dd$g = 1 else dd$g = -1 
> > 
> >  
> > 
> > and dd=
> > 
> >  
> > 
> >> dd
> > 
> >   aa bb g
> > 
> > 1  a  1 1
> > 
> > 2  a  1 1
> > 
> > 3  b  1 1
> > 
> > 4  a  2 1
> > 
> > 5  b  3 1
> > 
> > 6  b  4 1
> > 
> >> 
> > 
> >  
> > 
> > Please let me know what is the error I am doing?
> > 
> >  
> > 
> >  
> > 
> >  
> > 
> >  
> > 
> > 
> > 	[[alternative HTML version deleted]]
> > 
> > ______________________________________________
> > R-help at stat.math.ethz.ch 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.
> 
> ______________________________________________
> R-help at stat.math.ethz.ch 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.

Petr Pikal
petr.pikal at precheza.cz



More information about the R-help mailing list