[R] How to find when a value is reached given a function?
Luigi Marongiu
m@rong|u@|u|g| @end|ng |rom gm@||@com
Mon Jan 25 15:46:32 CET 2021
If I run this:
```
Y = c(10000, 20000, 40000, 80000, 160000, 320000, 640000, 1280000)
X = 0:7
plot(Y~X, log='y')
model <- lm(log10(Y) ~ X)
abline(model)
predict(model, data.frame(Y=log10(1000000)))
```
I get a funny answer:
```
1 2 3 4 5 6 7 8
4.00000 4.30103 4.60206 4.90309 5.20412 5.50515 5.80618 6.10721
Warning message:
'newdata' had 1 row but variables found have 8 rows
```
but:
```
> data.frame(Y=log10(1000000))
Y
1 6
```
What is the correct use?
Thank you
On Mon, Jan 25, 2021 at 3:20 PM Luigi Marongiu <marongiu.luigi using gmail.com> wrote:
>
> Thanks, I'll check it out. I ran the simulation and I got:
> ```
>
> t = 1, N = 20,000
> t = 2, N = 40,000
> t = 3, N = 80,000
> t = 4, N = 160,000
> t = 5, N = 320,000
> t = 6, N = 640,000
> t = 7, N = 1,280,000
> ```
> Hence the answer is t=6.{...} but the problem is to get that
> fractional value. Would be possible to use some kind of interpolation?
> I have the known Xs (the t values), the known Ys (the Nt), I need to
> get x when y is 10⁶
>
> On Sun, Jan 24, 2021 at 9:40 PM Duncan Murdoch <murdoch.duncan using gmail.com> wrote:
> >
> > On 24/01/2021 2:57 p.m., Luigi Marongiu wrote:
> > > Hello
> > > I am trying to simulate a PCR by running a logistic equation. So I set
> > > the function:
> > > ```
> > > PCR <- function(initCopy, dupRate, Carry) {
> > > ROI_T = initCopy
> > > A = array()
> > > for (i in 1:45) {
> > > ROI_TplusOne <- ROI_T * dupRate * (1 - ROI_T/Carry)
> > > A[i] <- ROI_TplusOne
> > > ROI_T <- ROI_TplusOne
> > > }
> > > return(A)
> > > }
> > > ```
> > > Which returns an array that follows the logistic shape, for instance
> > > ```
> > > d <- 2
> > > K <- 10^13
> > > A_0 <- 10000
> > > PCR_array <- PCR(A_0, d, K)
> > > plot(PCR_array)
> > > ```
> > > Given the formula `ROI_TplusOne <- ROI_T * dupRate * (1 -
> > > ROI_T/Carry)`, is it possible to determine at what time point `i` a
> > > given threshold is reached? For instance, what fractional value of i
> > > returns 1000 000 copies?
> >
> > There are two answers:
> >
> > The brute force answer is just to try it and count how far you need to
> > go. This is really simple, but really inefficient.
> >
> > The faster and more elegant way is to solve the recursive relation for
> > an explicit solution. You've got a quadratic recurrence relation;
> > there's no general solution to those, but there are solutions in special
> > cases. See https://math.stackexchange.com/q/3179834 and links therein
> > for some hints.
> >
> > Duncan Murdoch
>
>
>
> --
> Best regards,
> Luigi
--
Best regards,
Luigi
More information about the R-help
mailing list