Dear R helpers, I am trying to calculate the Annualized Percent Rate using following R - Code. # ____________________________________________________________________ ## R Code library(animation) # INPUT C = 250000 # Loan Amount E = 2500 # Other Cost R = 6 # Interest rate r = R/1200 # Monthly interest rate q = 12 # No of Compoundings n = 20 # No of years # ________________________________________________________________________ # COMPUTATIONS N = n * q # No of months P = ((C + E)*r*(1+r)^N) / ((1+r)^N - 1) # Monthly Payments ani.options(nmax = 500) solu = newton.method(function(a) C * (a*(1+a)^N) - P * ((1+a)^N - 1), 1, c(R - 0.25*R, R + 0.25*R)) solu$root APR = ((1+solu$root)^q-1)*100 # _____________________________________________________________________ ## RESULTS P = 1808.988, APR = 6.298708 These are the values I obtain. # ____________________________________________________________________ ## PROBLEM This R code holds or yields results if I am dealing with only one value for each of the input. However, if there are more than one input values, how do I proceed? Say, E.g. C = c(250000, 400000) E = c(2500, 5000) R = c(6, 6) q = c(12, 12) n = c(20, 20) So using above code, I am able to obtain the values of P as 1808.988 and 2901.546 respectively. However, using this code I am not able to obtain "solu" as defined above. I tried using the tapply instead but seems its not working. Please guide as to how do I use tapply here. Regards and thanking in advance Amy [[alternative HTML version deleted]]
Hi: I'm pretty sure that newton.method in the animation package is meant to illustrate the technique rather than to be used as an optimizer in practice. Look at ?optim; it that doesn't meet your needs, consult the Optimization Task View at CRAN, where you will find several packages, in addition to functions in the base package, devoted to function optimization. HTH, Dennis On Mon, Oct 25, 2010 at 12:18 AM, Amy Milano <milano_amy@yahoo.com> wrote:> Dear R helpers, > > I am trying to calculate the Annualized Percent Rate using following R - > Code. > > # ____________________________________________________________________ > > ## R Code > > library(animation) > > # INPUT > > C = 250000 # Loan Amount > E = 2500 # Other Cost > R = 6 # Interest rate > r = R/1200 # Monthly interest rate > q = 12 # No of Compoundings > n = 20 # No of years > > # ________________________________________________________________________ > > # COMPUTATIONS > > N = n * > q # No of months > > P = ((C + E)*r*(1+r)^N) / ((1+r)^N - 1) # Monthly Payments > > ani.options(nmax = 500) > solu = newton.method(function(a) C * (a*(1+a)^N) - P * ((1+a)^N - 1), 1, > c(R - 0.25*R, R + 0.25*R)) > solu$root > > APR = ((1+solu$root)^q-1)*100 > > # _____________________________________________________________________ > > ## RESULTS P = 1808.988, APR = 6.298708 These are the values I obtain. > > # ____________________________________________________________________ > > ## PROBLEM > > This R code holds or yields results if I am dealing with only one value for > each of the input. However, > if there are more than one input values, how do I proceed? Say, E.g. > > C = c(250000, 400000) > E = c(2500, 5000) > R = c(6, 6) > q = c(12, 12) > n = c(20, 20) > > So using above code, I am able to obtain the values of P as 1808.988 and > 2901.546 respectively. However, using this code I > am not able to obtain "solu" as defined above. I tried using the tapply > instead but seems its not working. > > Please guide as to how do I use tapply here. > > Regards and thanking in advance > > Amy > > > > > > [[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]]
Dear Sir, Thanks a lot for your advice and surely I will be going through your suggestion as regards ?optim. In the mean time, is it possible to guide me regarding one general question. Suppose instead of using newton.method function, I am using some other function resulting in some other process and which is using say C, E, N, R only. (i.e. I am not calculating root anymore). My problem is how do I apply this function row-wise to a table. I am not sure whether I am able to put up my query properly. Basically, I need to apply the function to a table and store the result row-wise. Thanks in advance Sir. Regards Amy --- On Mon, 10/25/10, Dennis Murphy <djmuser@gmail.com> wrote: From: Dennis Murphy <djmuser@gmail.com> Subject: Re: [R] Using tapply? To: "Amy Milano" <milano_amy@yahoo.com> Cc: r-help@r-project.org Date: Monday, October 25, 2010, 10:47 AM Hi: I'm pretty sure that newton.method in the animation package is meant to illustrate the technique rather than to be used as an optimizer in practice. Look at ?optim; it that doesn't meet your needs, consult the Optimization Task View at CRAN, where you will find several packages, in addition to functions in the base package, devoted to function optimization. HTH, Dennis On Mon, Oct 25, 2010 at 12:18 AM, Amy Milano <milano_amy@yahoo.com> wrote: Dear R helpers, I am trying to calculate the Annualized Percent Rate using following R - Code. # ____________________________________________________________________ ## R Code library(animation) # INPUT C = 250000 # Loan Amount E = 2500 # Other Cost R = 6 # Interest rate r = R/1200 # Monthly interest rate q = 12 # No of Compoundings n = 20 # No of years # ________________________________________________________________________ # COMPUTATIONS N = n * q # No of months P = ((C + E)*r*(1+r)^N) / ((1+r)^N - 1) # Monthly Payments ani.options(nmax = 500) solu = newton.method(function(a) C * (a*(1+a)^N) - P * ((1+a)^N - 1), 1, c(R - 0.25*R, R + 0.25*R)) solu$root APR = ((1+solu$root)^q-1)*100 # _____________________________________________________________________ ## RESULTS P = 1808.988, APR = 6.298708 These are the values I obtain. # ____________________________________________________________________ ## PROBLEM This R code holds or yields results if I am dealing with only one value for each of the input. However, if there are more than one input values, how do I proceed? Say, E.g. C = c(250000, 400000) E = c(2500, 5000) R = c(6, 6) q = c(12, 12) n = c(20, 20) So using above code, I am able to obtain the values of P as 1808.988 and 2901.546 respectively. However, using this code I am not able to obtain "solu" as defined above. I tried using the tapply instead but seems its not working. Please guide as to how do I use tapply here. Regards and thanking in advance Amy [[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]]
Hi Amy, I guess U can just use the apply() function for the purpose U described. Alex -- View this message in context: http://r.789695.n4.nabble.com/Using-tapply-tp3009834p3012694.html Sent from the R help mailing list archive at Nabble.com.