[R] data frame manipulation change elements meeting criteria

arnaud Gaboury arnaud.gaboury at gmail.com
Thu May 27 08:33:22 CEST 2010

Thank you for the answer.
Is there any way to combine if() and switch() in one line? In my case,
something like :


I would like to avoid the loop .

From: Joris Meys [mailto:jorismeys at gmail.com] 
Sent: Wednesday, May 26, 2010 9:15 PM
To: arnaud Gaboury
Cc: r-help at r-project.org
Subject: Re: [R] data frame manipulation change elements meeting criteria

see ?switch

X<- rep(c("Buy","Sell","something else"),each=5)
Y<- rep(c("DEL","INS","DEL"),5)

new.vect <- X
for (i in which(Y=="DEL")){
          EXPR = X[i],
On Wed, May 26, 2010 at 7:43 PM, arnaud Gaboury <arnaud.gaboury at gmail.com>
Dear group,

Here is my df :

trade <-
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. =
-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")

Here is what I want :

If trade$Trade.Status=="DEL": then if trade$buy.Sell..Cleared==Sell , change
it to "Buy", if trade$buy.Sell..Cleared==Buy, change it to "Sell".
If trade$Trade.Status=="INS", do nothing
I tried to work around with ifelse, but don't know how to deal with so many

Any help is appreciated.


R-help at r-project.org mailing list
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Joris Meys
Statistical Consultant

Ghent University
Faculty of Bioscience Engineering 
Department of Applied mathematics, biometrics and process control

Coupure Links 653
B-9000 Gent

tel : +32 9 264 59 87
Joris.Meys at Ugent.be 
Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php

More information about the R-help mailing list