[R] categorical column to numeric column
Duncan Murdoch
murdoch at stats.uwo.ca
Mon Feb 19 15:11:52 CET 2007
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)
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.
More information about the R-help
mailing list