Karin Lagesen wrote:
> I have a function like this:
>
> changedir <- function(dataframe) {
> dir <- dataframe$dir
> gc_content <- dataframe$gc_content
> d <- ifelse(dir == "-",
>             gc_content <- -gc_content,gc_content <- gc_content)
> return(d)
> }
>
> The goal of this function is to be able to input a data frame like this:
>
>
>   
>> lala
>>     
>    dir gc_content
> 1    +        0.5
> 2    -        0.5
> 3    +        0.5
> 4    -        0.5
> 5    +        0.5
> 6    -        0.5
> 7    +        0.5
> 8    -        0.5
> 9    +        0.5
> 10   -        0.5
> 11   +        0.5
> 12   -        0.5
> 13   +        0.5
> 14   -        0.5
> 15   +        0.5
> 16   -        0.5
> 17   +        0.5
> 18   -        0.5
> 19   +        0.5
> 20   -        0.5
>   
>
> And change the sign of the value of the gc_content field if the
> corresponding dir field is negative.
>
> Howver, when I run this through the changedir function, all of the
> gc_contents become negative.
>
> An I misunderstanding how to use the ifelse construct? And in that
> case, how should I go about doing this in a different way?
>
> Thankyou very much in advance for your help, and I hope that my
> question is not too banal!
>
> Karin
>   
Yes, you are misunderstanding it and you should study the examples on
the help page.

One key point is that (in general) both the 'yes' and 'no' get
evaluated, so having assignments to the same variable in there is a
really bad idea. Another point is that ifelse takes three _vectors_ and
returns a fourth.

I'd do

  result <- ifelse(dir=="-", -gc_content, gc_content)

-- 
   O__  ---- Peter Dalgaard             Ă˜ster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - ([EMAIL PROTECTED])                  FAX: (+45) 35327907

______________________________________________
R-help@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.

Reply via email to