Re: [R] object not found inside step() function

2009-11-16 Thread shuai yuan
Thanks David.

My code is ok if I did not wrap it up. The problem poped up after i make it
as a function.
In my step() call, i just make it a little bit more general.

I do not like stepwise method too, but need it as a comparison.



samer



On Mon, Nov 16, 2009 at 3:03 PM, David Winsemius wrote:

>
> On Nov 16, 2009, at 2:31 PM, shuai yuan wrote:
>
> Hi, there,
>>
>> My appologize if someone ask the same question before. I searched the
>> mailing list and found one similar post, but not what i want.
>>
>> The problem for me is, I use the step( glm()) to do naive forward
>> selection for logistic regression.  My code is functional
>> in the open environment. But if I wrap it up as a function, then R keeps
>> saying "object 'a' not found". Actually,  data frame
>> "a" is inside the function.
>>
>> I did some search online. i guess the reason may be R did not keep the
>> data
>> in glm() output after building the model but not sure.
>> Can anyone please tell me how to work around this problem?
>>
>> Thanks a lot in advance.
>>
>> I am using R 2.9.0. Here is the sample code:
>>
>> #
>> naivelr<-function(x,y){
>> :
>> :
>> :
>>
>> a<-data.frame(x)
>>
>>
>> form<-paste("y~1+",paste(grep("X.*",names(a),value=T),collapse="+"),sep="")
>>
>> if(is.null(force.in)!=T){
>> lowmo<-paste("y~1+",paste(grep("X.*",names(a)[force.in
>> ],value=T),collapse="+"),sep="")
>>
>> } else
>> {lowmo<-"y~1"}
>>
>> lower1<-glm(lowmo,family="binomial",data=data.frame(a,y))
>> upper1<-glm(form,family="binomial",data=data.frame(a,y))
>>
>
> You are sticking data.frame= a inside another data.frame 
>
>
>
>>
>>
>> stepout<-step(lower1,scope=list(lower=lower1,upper=upper1),direction="forward",k=0,trace=100)
>>
>
> Thats not the way I remember "step"-ping. I thought you made a fit and then
> "stepped" the formulas (using the same data), rather putting the whole glm
> object into a "lower" and an "upper". I could be wrong about that since I
> try to avoid using stepwise methods.
>
>
> # here is the error:Start:
>> #AIC=689.62
>> #y ~ 1
>> #Error in data.frame(a, y) : object 'a' not found---but "a" is there!
>>
>
> But it's probably not in a form that can be interpreted. Consider adding y
> as a column in "a".
>
> David Winsemius, MD
> Heritage Laboratories
> West Hartford, CT
>
>

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


Re: [R] object not found inside step() function

2009-11-16 Thread David Winsemius


On Nov 16, 2009, at 2:31 PM, shuai yuan wrote:


Hi, there,

My appologize if someone ask the same question before. I searched the
mailing list and found one similar post, but not what i want.

The problem for me is, I use the step( glm()) to do naive forward
selection for logistic regression.  My code is functional
in the open environment. But if I wrap it up as a function, then R  
keeps

saying "object 'a' not found". Actually,  data frame
"a" is inside the function.

I did some search online. i guess the reason may be R did not keep  
the data

in glm() output after building the model but not sure.
Can anyone please tell me how to work around this problem?

Thanks a lot in advance.

I am using R 2.9.0. Here is the sample code:

#
naivelr<-function(x,y){
:
:
:

a<-data.frame(x)

form<- 
paste("y~1+",paste(grep("X.*",names(a),value=T),collapse="+"),sep="")


if(is.null(force.in)!=T){
lowmo<-paste("y~1+",paste(grep("X.*",names(a) 
[force.in],value=T),collapse="+"),sep="")


} else
{lowmo<-"y~1"}

lower1<-glm(lowmo,family="binomial",data=data.frame(a,y))
upper1<-glm(form,family="binomial",data=data.frame(a,y))


You are sticking data.frame= a inside another data.frame 




stepout<- 
step 
(lower1 
,scope 
=list(lower=lower1,upper=upper1),direction="forward",k=0,trace=100)


Thats not the way I remember "step"-ping. I thought you made a fit and  
then "stepped" the formulas (using the same data), rather putting the  
whole glm object into a "lower" and an "upper". I could be wrong about  
that since I try to avoid using stepwise methods.



# here is the error:Start:
#AIC=689.62
#y ~ 1
#Error in data.frame(a, y) : object 'a' not found---but "a" is there!


But it's probably not in a form that can be interpreted. Consider  
adding y as a column in "a".


David Winsemius, MD
Heritage Laboratories
West Hartford, CT

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