[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