Neil Gupta wrote:
Hello R-Users,

I am new to R and trying my best however I need help with this simple task.
I have a dataset, YM1207.
 X.Symbol                     Date Time Exchange         TickType
ReferenceNumber Price Size
12491  3:YMZ7.EC 12/03/2007 08:32:50       EC        B
85985770                13379    7
12492  3:YMZ7.EC 12/03/2007 08:32:50       EC        A
85985771                13380    4
12493  3:YMZ7.EC 12/03/2007 08:32:50       EC        T
85985845                13379    1
12494  3:YMZ7.EC 12/03/2007 08:32:50       EC        B
85985846                13379    7
12495  3:YMZ7.EC 12/03/2007 08:32:50       EC        A
85985847                13380    4
12496  3:YMZ7.EC 12/03/2007 08:32:50       EC        B
85986222                13379    6
12497  3:YMZ7.EC 12/03/2007 08:32:50       EC        A
85986223                13380    4

I want to insert a column called NPrice which takes a pair of B,A and
calculates its average Price. And than input that number in the B row and A
row in the new column NPrice. Each B, A is seperated by +1 on the Reference
Number. I want to skip T entries. T's do not come inbetween corresponding Bs
and As. The other columns are not of interest. I would really appreciate it
if I can get some help on this or refer me to a source that may.

I think this is a case where what you really need to do is to become aware of the tools you have in the toolbox. E.g., I already showed you one way to do it if the T's were absent:

N <- nrow(YM1207)
ix <- gl(N/2,2)
YM1207$NPrice <- ave(YM1207$price, ix)

(OK, I forgot $price last time...)

so how about making them disappear using

isAB <- YM1207$TickType %in% c("A","B)]
ABprice <- YM1207$price[ix]

then do as before

N <- length(ABprice)
ix <- gl(N/2,2)
NPrice <- ave(YM1207$price, ix)

and put it back using

YM1207$NPrice <- NA
YM1207$NPrice[isAB] <- NPrice

There are several ways to do this sort of thing. Another variation, closer to your original suggestion would be to do

isA <- YM1207$TickType == "A"
isB <- YM1207$TickType == "B"
nPrice <- (YM1207$price[isA]+YM1207$price[isB])/2
YM1207$NPrice <- NA
YM1207$NPrice[isA] <- YM1207$NPrice[isB] <- nPrice

(you probably don't really need the NA assignment, but strange things can happen when you make subassignments into non-existing columns)

--
  O__  ---- Peter Dalgaard             Ă˜ster Farimagsgade 5, Entr.B
 c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - ([EMAIL PROTECTED])              FAX: (+45) 35327907

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

Reply via email to