From: Rolf Turner <rolf.turner_at_xtra.co.nz>

Date: Thu, 28 Apr 2011 10:35:24 +1200

R-help_at_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. Received on Wed 27 Apr 2011 - 22:43:21 GMT

Date: Thu, 28 Apr 2011 10:35:24 +1200

On 28/04/11 06:12, David Winsemius wrote:

*>
*

> On Apr 27, 2011, at 11:54 AM, Dale wrote:

*>
**>> If I have a vector of n elements, e.g. a vector of length 4 with
**>> elements 10,
**>> 20, 30, 40 and want to find the different values of x such that x^2=10,
**>> x^2=20, x^30 and x^2=40, how could I do this in R? I'm thinking of
**>> using the
**>> uniroot function, but am finding difficult applying it to a vector.
**>> Thanks
**>
**> I find myself scratching my head wondering why the answer is not:
**>
**> y=c(10,20,30,40)
**> x=sqrt(y)
**> x
*

My guess is that he really wants to solve foo(x) = y_i for each entry y_i of some vector y, and that ``x^2'' was just an over-simplified version of foo() (and c(10,20,30,40) was an over-simplified version of y).

I think that something like

lapply(y,function(a){uniroot(function(t){foo(t) - a},lower=L,upper=U)})

(untested) might be what is wanted (for appropriately chosen values of L and U).

Things get more complicated if L and U need to be chosen differently for each entry of y.

cheers,

Rolf Turner

R-help_at_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. Received on Wed 27 Apr 2011 - 22:43:21 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Thu 28 Apr 2011 - 03:10:33 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*