On 24.02.2012 17:36, Arnaud Gaboury wrote:
df<- data.frame(x = c("AA","BB","CC","AA","DD","DD"), y = 1:6)
mult<- c(AA = 10, BB = 25,DD=15)
df$y<- df$y * mult[df$x]
df
    x  y
1 AA 10
2 BB 50
3 CC 45
4 AA 40
5 DD NA
6 DD NA

My df is in fact much more longer than the chosen example shown here. It seems 
your tip didn't do the job.
I am expecting this as result :


This is not the I do the job for you hotline. You are free to think a little bit yourself given you have not managed in two attempts to describe your problem sufficiently well!

Uwe Ligges



df
    x  y
1 AA 10  ---->  if df$x==AA, df$y<-1*10
2 BB 50   ---->  if df$x==BB, df$y<-2*25
3 CC 3         NOTHING
4 AA 40    ---->  if df$x==AA, df$y<-4*10
5 DD 75   ---->  if df$x==DD, df$y<-5*15
6 DD 90   ---->  if df$x==DD, df$y<-6*15

Arnaud Gaboury

A2CT2 Ltd.

-----Original Message-----
From: Uwe Ligges [mailto:lig...@statistik.tu-dortmund.de]
Sent: vendredi 24 février 2012 17:07
To: Arnaud Gaboury
Cc: r-help@r-project.org
Subject: Re: [R] data frame manipulation with condition



On 24.02.2012 16:59, Arnaud Gaboury wrote:
TY Uwe,

So I will have to write a line for each condition? Right?

In fact I was trying to do something with apply in one line, but couldn't 
achieve any result. In fact, all my transformation will be multiplying one 
object by a specific number according to the value of df$x.

In that case:

mult<- c(AA = 10, BB = 25)

Then:


df$y<- df$y * mult[df$x]


Uwe Ligges



Arnaud Gaboury

A2CT2 Ltd.


-----Original Message-----
From: Uwe Ligges [mailto:lig...@statistik.tu-dortmund.de]
Sent: vendredi 24 février 2012 16:33
To: Arnaud Gaboury
Cc: r-help@r-project.org
Subject: Re: [R] data frame manipulation with condition



On 24.02.2012 16:25, Arnaud Gaboury wrote:
Dear list,

n00b question, but still can't find any easy answer.

Here is a df:


Change

df<-data.frame(cbind(x=c("AA","BB","CC","AA"),y=1:4))

to

    df<- data.frame(x = c("AA","BB","CC","AA"), y = 1:4)

to make your object a sensible data.frame.



df
      x y
1 AA 1
2 BB 2
3 CC 3
4 AA 4


I want to modify this df this way :
    if df$x=="AA" then df$y=df$y*10

df$y[df$x=="AA"]<- df$y[df$x=="AA"] * 25

...


Uwe Ligges


    if df$x=="BB" then df$y=df$y*25




and so on with other conditions.

TY for any help.

Trading

A2CT2 Ltd.


Arnaud Gaboury

A2CT2 Ltd.

______________________________________________
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.



______________________________________________
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