[R] offlist Re: Svy function doesn't work nested in user-defined function

David Winsemius dwinsemius at comcast.net
Thu May 20 22:47:33 CEST 2010


On May 20, 2010, at 4:44 PM, David Winsemius wrote:

>
> On May 20, 2010, at 4:32 PM, David Winsemius wrote:
>
>>
>> On May 20, 2010, at 11:24 AM, Sabatier, Jennifer F. (CDC/OID/ 
>> NCHHSTP) wrote:
>>
>>>
>>> Hi R-help,
>>>
>>> I posted about this late yesterday but got no response. I may have  
>>> put
>>> TMI in the original request.  Not to mention I couldn't cut and  
>>> paste
>>> yesterday because I was working R off a non-network computer while
>>> asking for help on a network computer.
>>>
>>>
>>> Essentially, I have this user-defined function:
>>>
>>> test <- function(X){
>>>
>>> 			
>>>          	chisq <- svychisq(~X + SEX, design=audit,
>>
>> Did you really have a variable name "X" inside the object that you  
>> are giving a temporary name of "X" to. Seems confusing if that were  
>> your choice.
>>
>>> statisic="adjWald", round=4)
>>> 			
>>> }
>>>
>>> test(con)
>>>
>>
>> I do not know the answer, but I'm not sure that anyone including  
>> Lumley could answer it with the proffered information:
>>
>> Perhaps you should include the code used to create "audit" as well  
>> as the results of str() on the data argument to design when audit  
>> was created. I am guessing that "SEX" is not available inside the  
>> function and that you should have written:
>>
>> test <- function(Z){ 			
>>          	chisq <- svychisq(~X + SEX, design=Z,
>>                                   statistic="adjWald", round=4)
>> 			
>> }
>
> Oh, heck. Forgot to trim the address list. Looking at this again, I  
> think I see the OP's intent better. I still do not have the answer,  
> but believe the OP needs to construct a valid formula object if she  
> intends to pass only a column name to her function. Perhaps  
> something along the lines of:
>
> test <- function(Z){ 			
>          fmla <- as.formula( paste(" ~ ", paste(X, "SEX", collapse=  
> "+"))))

Er, Better might be:

fmla <- as.formula( paste(" ~ ", paste(c(Z, "SEX"), collapse= "+")))

>          chisq <- svychisq( fmla, design=audit,
>                                   statistic="adjWald", round=4)
> 			
> }
>
> test(con)
>
>
>>
>>
>> -- 
>> David.
>>
>>
>>>
>>>
>>> "con" is a data variable in my design object audit.
>>>
>>> When I just run:
>>>
>>> chisq <- svychisq(~X + SEX, design=audit, statisic="adjWald",  
>>> round=4)
>>>
>>> It works just fine.
>>>
>>> It's only when it's nested in the function test() that it falls  
>>> apart.
>>>
>>> I get this error:
>>>
>>> Error in `[.data.frame`(design$variables, , as.character(rows)) :
>>> undefined columns selected
>>>
>>>
>>> How can I solve this problem?
>>>
>>> Thanks,
>>>
>>> Jen (obviously a new R-user, as of late 2009)
>>>
>>> ______________________________________________
>>> 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
>>
>> ______________________________________________
>> 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
>

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list