Thanks to Joris, this line does what I want : trades$Buy.Sell..Cleared.[which(trades$Trade.Status=="DEL")] <- sapply(trades$Buy.Sell..Cleared.[which(trades$Trade.Status=="DEL")], switch,Sell="Buy",Buy="Sell")
> -----Original Message----- > From: jim holtman [mailto:jholt...@gmail.com] > Sent: Thursday, May 27, 2010 2:34 PM > To: arnaud Gaboury > Cc: r-help@r-project.org > Subject: Re: [R] switch function > > try this: > > > toBuy <- trades$Trade.Status == "DEL" & trades$Buy.Sell..Cleared. == > "Sell" > > toSell <- trades$Trade.Status == "DEL" & trades$Buy.Sell..Cleared. == > "Buy" > > x <- trades # make a copy to change > > x$Buy.Sell..Cleared.[toBuy] <- "Buy" > > x$Buy.Sell..Cleared.[toSell] <- "Sell" > > x > Trade.Status Instrument.Long.Name Delivery.Prompt.Date > Buy.Sell..Cleared. Volume Price Net.Charges..sum. > 1 DEL SUGAR NO.11 Jul/10 > Buy 1 15.2500 4.01 > 2 INS CORN Jul/10 > Buy 2 368.0000 -8.64 > 3 INS CORN Jul/10 > Buy 1 368.5000 -4.32 > > trades > Trade.Status Instrument.Long.Name Delivery.Prompt.Date > Buy.Sell..Cleared. Volume Price Net.Charges..sum. > 1 DEL SUGAR NO.11 Jul/10 > Sell 1 15.2500 4.01 > 2 INS CORN Jul/10 > Buy 2 368.0000 -8.64 > 3 INS CORN Jul/10 > Buy 1 368.5000 -4.32 > > > > > > > On Thu, May 27, 2010 at 4:03 AM, arnaud Gaboury > <arnaud.gabo...@gmail.com> wrote: > > Dear group, > > > > Here is my df : > > > > trades <- > > structure(list(Trade.Status = c("DEL", "INS", "INS"), > Instrument.Long.Name = > > c("SUGAR NO.11", > > "CORN", "CORN"), Delivery.Prompt.Date = c("Jul/10", "Jul/10", > > "Jul/10"), Buy.Sell..Cleared. = c("Sell", "Buy", "Buy"), Volume = > c(1L, > > 2L, 1L), Price = c("15.2500", "368.0000", "368.5000"), > Net.Charges..sum. = > > c(4.01, > > -8.64, -4.32)), .Names = c("Trade.Status", "Instrument.Long.Name", > > "Delivery.Prompt.Date", "Buy.Sell..Cleared.", "Volume", "Price", > > "Net.Charges..sum."), row.names = c(NA, 3L), class = "data.frame") > > > > I want to replace "Buy" by "Sell" and "Sell" by "Buy" in column > > "Buy.Sell..Cleared." when element in column "Trade.Status" is equal > to > > "DEL". > > > > I think I can write something like this : > > > > > >>tradesnew<- > sapply(trades$Buy.Sell..Cleared[which(trades$Buy.Sell..Cleared== > > "DEL"),],switch,.......) but I don't really know how to pass further > > arguments to the switch function. > > > > Any help is appreciated. > > > > ______________________________________________ > > 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. > > > > > > -- > Jim Holtman > Cincinnati, OH > +1 513 646 9390 > > What is the problem that you are trying to solve? ______________________________________________ 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.