Try this: sapply(sapply(c(257, 520, 110), seq, by = -100), '/', 360)
On Thu, Dec 9, 2010 at 10:24 AM, Vincy Pyne <vincy_p...@yahoo.ca> wrote: > Dear Sirs, > > I understand these already are numeric values. Sir, Basically I am working > on Value at Risk for the Bond portfolio using the historical simulation and > for this I need to find out Marked to Market (MTM) value suing the Present > Value of the coupon payments for each Bonds (here as an example I have taken > only 3). > > What I have done so far is for a given bond I have found no of days left > for maturity. E.g. in 1st case there are 257 days left for maturity. The > bond pays coupon twice a year and thus on 257th day the bond will mature and > I will be getting the Principal and final coupon payment. Since teh bond is > paying the coupons every 6 months, going backward from 257 th day, my > earlier coupon payment falls on (257 - 180) = 77 days. (However, in above > example, I have just taken 100 just for example purpose) > > Thus, assuming 100 days, my coupons will be paid on 257, 157, 57days. I > need to convert these days in terms of years and so when I try to divide yy > defined as > > yy <- lapply(c(257, 520, > 110), seq, to=0, by=-100) > > yy/360, I get following error. > > Error in yy/360 : non-numeric argument to binary operator > > On the other hand, > > yy[[1]]/365 fetches me > > [1] 0.7138889 0.4361111 0.1583333 > > > Thus, I am trying to obtain the result yy <- lapply(c(257, 520, > 110), seq, to=0, by=-100) in such a form, so taht I should be able to > further analysis. What I was trying to say is since here I am taking only > three bonds, so I can do it individually, however if there are number of > bonds (say 1000) in the portfolio, my method of converting the days > individually is not practical. > > I am extremely sorry for the inconvenience caused. I tried to keep my > problem short in oder not to consume your valuable time. > > Regards > > Vince Pyne > > > > --- On Thu, 12/9/10, Petr PIKAL <petr.pi...@precheza.cz> wrote: > > From: Petr PIKAL <petr.pi...@precheza.cz> > Subject: Re: [R] Sequence generation in a table > To: "Vincy Pyne" <vincy_p...@yahoo.ca> > Cc: r-help@r-project.org > Received: Thursday, December 9, 2010, 12:03 PM > > Hi > > r-help-boun...@r-project.org napsal dne 09.12.2010 12:41:47: > > > Dear Sir, > > > > Sorry to bother you again. Sir, the R code provided by you gives me > following output. > > > > > yy <- lapply(c(257, 520, > 110), seq, to=0, by=-100) > > > yy > > [[1]] > > [1] 257 157 57 > > > > [[2]] > > [1] 520 420 320 220 120 20 > > > > [[3]] > > [1] 110 10 > > > > The biggest constraint for me is here as an example I have taken only > three > > cases i.e. c(257, 520, 110), however in reality I will be dealing with > no of > > cases and that number is unknown. But your code will certainly generate > me the > > required numbers. In above case for doing further calculations, I can > define say > > > > yy1 = as.numeric(yy[[1]]) > > yy2 = as.numeric(yy[2]]) > > yy3 = as.numeric(yy[[3]]) > > Why? Those values are already numeric. > > lapply(yy, is.numeric) > > [[1]] > [1] TRUE > > [[2]] > [1] TRUE > > [[3]] > [1] TRUE > > and you can use the same construction to perform almost any operation on > list. > > lapply(yy, max) > lapply(yy, > mean) > lapply(yy, sd) > lapply(yy, t.test) > > Regards > Petr > > > > > > But when the number of cases are unknown, perhaps this is not the > practical > > way of me defining individually. So is there any way that I can have all > the > > sequence numbers generated can be accommodated in a single dataframe. I > > sincerely apologize for disturbing you Sir and hope I am able to put up > my > > problem in a proper manner. > > > > Regards > > > > Vincy Pyne > > > > > > --- On Thu, 12/9/10, Jan van der Laan <rh...@eoos.dds.nl> wrote: > > > > From: Jan van der Laan <rh...@eoos.dds.nl> > > Subject: Re: [R] Sequence generation in a table > > To: r-help@r-project.org, vincy_p...@yahoo.ca > > Received: Thursday, December 9, 2010, 10:57 AM > > > > Vincy, > > > > I suppose the following does what you want. yy is now a list which > allows for > > differing lengths of the vectors. > > > > > yy <- lapply(c(257, 520, 110), seq, to=0, by=-100) > > > yy[[1]] > > [1] 257 157 57 > > > yy[[2]] > > [1] 520 420 320 220 120 20 > > > > > > Regards, > > Jan > > > > > > On 9-12-2010 11:40, Vincy Pyne wrote: > > > c(257, 520, 110) > > > > > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > 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. > > > > > [[alternative HTML version deleted]] > > > ______________________________________________ > 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. > > -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[alternative HTML version deleted]]
______________________________________________ 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.