[R] selection of outputs from the function

David Winsemius dwinsemius at comcast.net
Fri Dec 24 18:58:09 CET 2010


On Dec 24, 2010, at 11:56 AM, ufuk beyaztas wrote:

>
> Hi Dear All,
> This is a function which contains Covariance Ratio and Likelihood  
> Distance
> values (CVRi, LDi). i want to compute the all row's values, that is  
> run this
> function for nrow(X) times. The X and Y matrices are;
>
> X<- 
> matrix(c(1125,920,835,1000,1150,990,840,650,640,583,570,570,510,555,460,275,510,165,244,79,232,268,271,237,192,202,184,200,180,165,151,171,243,147,286,198,196,210,327,334,7160,8804,8108,6370,6441,5154,5896,5336,5041,5012,4825,4391,4320,3709,3969,3558,4361,3301,2964,2777,85.9,86.5,85.2,83.8,82.1,79.2,81.2,80.6,78.4,79.3,78.7,78.0,72.3,74.9,74.4,72.5,57.7,71.8,72.5,71.9,8905,7388,5348,8056,6960,5690,6932,5400,3177,4461,3901,5002,4665,4642,4840,4479,4200,3410,3360,2599),nrow=20)
> Y<- 
> matrix 
> (c 
> (1.5563,0.8976,0.7482,0.7160,0.3130,0.3617,0.1139,0.1139 
> ,-0.2218 
> ,-0.1549,0.0000,0.0000 
> ,-0.0969 
> ,-0.2218,-0.3979,-0.1549,-0.2218,-0.3979,-0.5229,-0.0458),nrow=20)
>
> theta <- function(X,Y) {
> B.cap <- solve(t(X)%*%X)%*%t(X)%*%Y
> P <- X%*%solve(t(X)%*%X)%*%t(X)
> Y.cap <- P%*%Y
> e <- Y-Y.cap
> var.cap<-(t(e)%*%e)/(nrow(X)-ncol(X)-1)
> ei <- Y[i,]-X[i,]%*%B.cap
> pi <- P[i,i]
> var.cap.i <-
> (((nrow(X)-ncol(X)-1)*var.cap)/(nrow(X)-ncol(X)-2))-(ei^2/((nrow(X)- 
> ncol(X)-2)*(1-pi)))
> ti <- ei/(sqrt(var.cap)*sqrt(1-pi))
> ti.star <- ei/(sqrt(var.cap.i)*sqrt(1-pi))
>
> X.star <- cbind(X,Y)
> pi.star <- pi+(ei^2/(t(e)%*%e))
>
>
> LDi <-  nrow(X)*log(((nrow(X))/(nrow(X)-1))*(((nrow(X)-ncol(X)-2))/
> (ti.star^2+nrow(X)-ncol(X)-2)))+((ti.star^2*(nrow(X)-1))/((1- 
> pi)*(nrow(X)-ncol(X)-2)))-1
> CVRi <- (((nrow(X)-ncol(X)-1-ti^2)/(nrow(X)-ncol(X)-2))^(nrow(X)))/ 
> (1-pi)
>
> list(ti=ti,ti.star=ti.star,pi=pi,pi.star=pi.star,LDi=LDi,CVRi=CVRi) }
>
> obj<-list()
> for(i in 1:nrow(X)){
> X<-X
> Y<-Y
> out<-theta(X,Y)
> obj<-c(obj,list(out))}
> obj
>
> Finally i get values...
> Is there any way to get the outputs as a list or data.frame like

Try this:

do.call(rbind, obj)

-- 
david.
>    pi CVRi
> 1   1    1
> 2   2    2
> 3   3    3
> 4   4    4
> 5   5    5
> 6   6    6
> 7   7    7
> 8   8    8
> 9   9    9
> 10 10   10
> 11 11   11
> 12 12   12
> 13 13   13
> 14 14   14
> 15 15   15
> 16 16   16
> 17 17   17
> 18 18   18
> 19 19   19
> 20 20   20
> for all values (pi,pi.star,ti,ti.star,CVRi,LDi)...
> Thanks so much for any idea !
> -- 
> View this message in context: http://r.789695.n4.nabble.com/selection-of-outputs-from-the-function-tp3163361p3163361.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list