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