Re: [R] loop problem for extract coefficients

2009-04-07 Thread Arien Lam
Hi Alex,

On Sun, April 5, 2009 16:49, Alex Roy wrote:
> Dear R users,
>   I have problem with extracting coefficients from a
> object. Here, X (predictor)and Y (response) are two matrix , I am
> regressing
> X ( dimensions 10 x 20) on each of columns of Y[,1] (10 x 1)  and want to
> store the coefficient values. I have performed a Elastic Net regression
> and
> I want to store the coeffcients in each iteration. I got an error message
> .
> I do not know where is the problem Please help me.
>
> Thanks
>
>
>
> *Code:*
>
> ---
> library(elasticnet)
> X<-matrix(rnorm(200),ncol=20)
> Y<-matrix(rnorm(200),ncol=20)
> loop <- 20
> size <- 20
> enres<-matrix(nrow = size, ncol = loop)
> fit<-matrix(nrow = size, ncol = loop)
> store<-matrix(nrow = size, ncol = loop)
> for(j in 1: 10)
> print (paste(j,"/200",sep=""))
> {
> enres<-enet(x=X,y=Y[,j],lambda=1,normalize=TRUE,intercept=TRUE)
> fit<-predict.enet(enres, X, type="coefficients")
> store[,j]<-fit$coefficients
> }
> 

The problem is that only the print statement is inside the for loop. I
would suggest:

for(j in 1: 10)
{ # here the opening bracket
print (paste(j,"/200",sep=""))
  # and not here!
enres<-enet(x=X,y=Y[,j],lambda=1,normalize=TRUE,intercept=TRUE)
fit<-predict.enet(enres, X, type="coefficients")
store[,j]<-fit$coefficients
}


Hope this helps,
Arien


>
>> library(elasticnet)
> Loading required package: lars
>> X<-matrix(rnorm(200),ncol=20)
>> Y<-matrix(rnorm(200),ncol=20)
>>
>> loop <- 20
>> size <- 20
>>
>> enres<-matrix(nrow = size, ncol = loop)
>> fit<-matrix(nrow = size, ncol = loop)
>> store<-matrix(nrow = size, ncol = loop)
>>
>> for(j in 1: 10)
> + print (paste(j,"/200",sep=""))
> [1] "1/200"
> [1] "2/200"
> [1] "3/200"
> [1] "4/200"
> [1] "5/200"
> [1] "6/200"
> [1] "7/200"
> [1] "8/200"
> [1] "9/200"
> [1] "10/200"
>> {
> + enres<-enet(x=X,y=Y[,j],lambda=1,normalize=TRUE,intercept=TRUE)
> + fit<-predict.enet(enres, X, type="coefficients")
> + store[,j]<-fit$coefficients
> + }
> *Error in store[, j] <- fit$coefficients :
>   number of items to replace is not a multiple of replacement length
>> *
>
>   [[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.
>


-- 
drs. H.A. (Arien) Lam (Ph.D. student)
Department of Physical Geography
Faculty of Geosciences
Utrecht University, The Netherlands

__
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.


Re: [R] loop problem for extract coefficients

2009-04-05 Thread Bill.Venables
Perhaps your loop should be more than just a print statement.  That works fine! 
 You need to place the print statement after the '{', not before it.

fit$coefficients is a 21 x 20 array (the rows are lablelled 0 to 20) and you 
are trying to put it in the jth *column* of a 20 x 20 matrix.  Not surprisingly 
it does not fit.

Perhaps you need to know more about just what it is this software is doing. 


Bill Venables
http://www.cmis.csiro.au/bill.venables/ 


-Original Message-
From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On 
Behalf Of Alex Roy
Sent: Monday, 6 April 2009 12:49 AM
To: r-help@r-project.org
Subject: [R] loop problem for extract coefficients

Dear R users,
  I have problem with extracting coefficients from a
object. Here, X (predictor)and Y (response) are two matrix , I am regressing
X ( dimensions 10 x 20) on each of columns of Y[,1] (10 x 1)  and want to
store the coefficient values. I have performed a Elastic Net regression and
I want to store the coeffcients in each iteration. I got an error message .
I do not know where is the problem Please help me.

Thanks



*Code:*

---
library(elasticnet)
X<-matrix(rnorm(200),ncol=20)
Y<-matrix(rnorm(200),ncol=20)
loop <- 20
size <- 20
enres<-matrix(nrow = size, ncol = loop)
fit<-matrix(nrow = size, ncol = loop)
store<-matrix(nrow = size, ncol = loop)
for(j in 1: 10)
print (paste(j,"/200",sep=""))
{
enres<-enet(x=X,y=Y[,j],lambda=1,normalize=TRUE,intercept=TRUE)
fit<-predict.enet(enres, X, type="coefficients")
store[,j]<-fit$coefficients
}


> library(elasticnet)
Loading required package: lars
> X<-matrix(rnorm(200),ncol=20)
> Y<-matrix(rnorm(200),ncol=20)
>
> loop <- 20
> size <- 20
>
> enres<-matrix(nrow = size, ncol = loop)
> fit<-matrix(nrow = size, ncol = loop)
> store<-matrix(nrow = size, ncol = loop)
>
> for(j in 1: 10)
+ print (paste(j,"/200",sep=""))
[1] "1/200"
[1] "2/200"
[1] "3/200"
[1] "4/200"
[1] "5/200"
[1] "6/200"
[1] "7/200"
[1] "8/200"
[1] "9/200"
[1] "10/200"
> {
+ enres<-enet(x=X,y=Y[,j],lambda=1,normalize=TRUE,intercept=TRUE)
+ fit<-predict.enet(enres, X, type="coefficients")
+ store[,j]<-fit$coefficients
+ }
*Error in store[, j] <- fit$coefficients :
  number of items to replace is not a multiple of replacement length
> *

[[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.

__
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.


[R] loop problem for extract coefficients

2009-04-05 Thread Alex Roy
Dear R users,
  I have problem with extracting coefficients from a
object. Here, X (predictor)and Y (response) are two matrix , I am regressing
X ( dimensions 10 x 20) on each of columns of Y[,1] (10 x 1)  and want to
store the coefficient values. I have performed a Elastic Net regression and
I want to store the coeffcients in each iteration. I got an error message .
I do not know where is the problem Please help me.

Thanks



*Code:*

---
library(elasticnet)
X<-matrix(rnorm(200),ncol=20)
Y<-matrix(rnorm(200),ncol=20)
loop <- 20
size <- 20
enres<-matrix(nrow = size, ncol = loop)
fit<-matrix(nrow = size, ncol = loop)
store<-matrix(nrow = size, ncol = loop)
for(j in 1: 10)
print (paste(j,"/200",sep=""))
{
enres<-enet(x=X,y=Y[,j],lambda=1,normalize=TRUE,intercept=TRUE)
fit<-predict.enet(enres, X, type="coefficients")
store[,j]<-fit$coefficients
}


> library(elasticnet)
Loading required package: lars
> X<-matrix(rnorm(200),ncol=20)
> Y<-matrix(rnorm(200),ncol=20)
>
> loop <- 20
> size <- 20
>
> enres<-matrix(nrow = size, ncol = loop)
> fit<-matrix(nrow = size, ncol = loop)
> store<-matrix(nrow = size, ncol = loop)
>
> for(j in 1: 10)
+ print (paste(j,"/200",sep=""))
[1] "1/200"
[1] "2/200"
[1] "3/200"
[1] "4/200"
[1] "5/200"
[1] "6/200"
[1] "7/200"
[1] "8/200"
[1] "9/200"
[1] "10/200"
> {
+ enres<-enet(x=X,y=Y[,j],lambda=1,normalize=TRUE,intercept=TRUE)
+ fit<-predict.enet(enres, X, type="coefficients")
+ store[,j]<-fit$coefficients
+ }
*Error in store[, j] <- fit$coefficients :
  number of items to replace is not a multiple of replacement length
> *

[[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.