Hi,
I tried both ideas, but it isn't that what I'm looking for.
I want to avoid for loop, because the matrix is of big size(1200*1200
entries)
With a loop I would do:
for ( i in seq(along = SmoothList))
{
Xarry[i,] <- predict(SmoothList[[i]],Xarry[i,])$y
}
Actually I want to do more than just to predict a value, but it isn't
important for the initial question...
Gunther
-----Urspr?ngliche Nachricht-----
Von: Petr Pikal [mailto:petr.pikal at precheza.cz]
Gesendet: Montag, 18. September 2006 11:44
An: Gunther H?ning
Cc: r-help at stat.math.ethz.ch
Betreff: Re: AW: [R] Question on apply() with more information...
Hi
If I am correct apply do not choose from SmoothList as you expected.
Instead probably
lapply(SmoothList, predict,Xarray)
or
mapply(predict,SmoothList, Xarray)
can give you probably what you want.
HTH
Petr
On 18 Sep 2006 at 9:26, Gunther H?ning wrote:
From: Gunther H?ning <gunther.hoening at ukmainz.de>
To: "'Petr Pikal'" <petr.pikal at precheza.cz>,
<r-help at stat.math.ethz.ch>
Subject: AW: [R] Question on apply() with more information...
Date sent: Mon, 18 Sep 2006 09:26:01 +0200
Ok.
I tried this too, but it still doesn't work.
Here some more information to try out, but just an excerpt of Xarray
x <- c(0.11,0.25,0.45,0.65,0.80,0.95,1)
Y <-
matrix(c(15,83,57,111,150,168,175,37,207,142,277,375,420,437),nrow=2
)
sm <- function(y,x){smooth.spline(x,y)} SmoothList <-
apply(Y,1,sm,x) NewValues <- function(x,LIST){predict(LIST,x)}
Xarray <-
matrix(c(0.15,0.56,0.66,0.45,0.19,0.17,0.99,0.56,0.77,0.41,0.11,0.63
,0 .42,0. 43),nrow=2)
apply(Xarray, 2, NewValues,SmoothList) apply(Xarray, 2,
NewValues,LIST=SmoothList)
-----Urspr?ngliche Nachricht-----
Von: Petr Pikal [mailto:petr.pikal at precheza.cz]
Gesendet: Montag, 18. September 2006 08:43
An: Gunther H?ning; r-help at stat.math.ethz.ch
Betreff: Re: [R] Question on apply()
Hi
not much information about what can be wrong. As nobody knows your
Xarray and SmoothList it is hard to guess. You even omitted to show
what "does not work" So here are few guesses.
predict usually expects comparable data apply(Xarray, 2,
NewValues,LIST=SmoothList)
HTH
Petr
On 18 Sep 2006 at 8:05, Gunther H?ning wrote:
From: Gunther H?ning <gunther.hoening at ukmainz.de>
To: <r-help at stat.math.ethz.ch>
Date sent: Mon, 18 Sep 2006 08:05:28 +0200
Subject: [R] Question on apply()
Dear list,
I try to do the following:
I have an list of length n, with elements done by smooth.spline
(SmoothList). Now I have a matrix with n rows and m columns with
x-values(Xarray) Now I want ot predict the y-values. Therefor I
want to take the first element of SmoothList and the first row of
Xarray and predict for each element in Xarray the y value. And
then take the second element of SmoothList and second row of
Xarray, third row of SmoothList and third row of Xarray and so
on....
I tried following:
NewValues <- function(x,LIST){predict(LIST,x)} apply(Xarray, 2,
NewValues,SmoothList)
But it don't work.
Could anybody help please ?
Gunther