-----Original Message-----
From: jim holtman [mailto:jholtman at gmail.com]
Sent: Thursday, May 27, 2010 2:34 PM
To: arnaud Gaboury
Cc: r-help at r-project.org
Subject: Re: [R] switch function
try this:
toBuy <- trades$Trade.Status == "DEL" & trades$Buy.Sell..Cleared. ==
toSell <- trades$Trade.Status == "DEL" & trades$Buy.Sell..Cleared. ==
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
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:
Dear group,
Here is my df :
trades <-
structure(list(Trade.Status = c("DEL", "INS", "INS"),
c("SUGAR NO.11",
"CORN", "CORN"), Delivery.Prompt.Date = c("Jul/10", "Jul/10",
"Jul/10"), Buy.Sell..Cleared. = c("Sell", "Buy", "Buy"), Volume =
2L, 1L), Price = c("15.2500", "368.0000", "368.5000"),
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
"DEL".
I think I can write something like this :
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.