Skip to content

switch function

3 messages · Arnaud Gaboury, jim holtman

#
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 :
"DEL"),],switch,.......)  but I don't really know how to pass further
arguments to the switch function.

Any help is appreciated.
#
try this:
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
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.gaboury at gmail.com> wrote:

  
    
#
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")