[R] Issue with formula conversion
Gang Chen
gangchen6 at gmail.com
Wed Aug 27 22:11:12 CEST 2014
Good point!
Here is an example:
library(nlme)
fm <- lme(yield ~ nitro, data=Oats, random=list(Block=pdComSymm(~Variety-1)))
Now the problem I'm facing is that the following part
pdComSymm(~Variety-1)
is read in as a string of characters from an external source:
ranEff <- 'pdComSymm(~Variety-1)'
The following
(ranEff1 <- as.formula(ranEff))
~Variety - 1
is not what I want. Even though
fm <- lme(yield ~ nitro, data=Oats, random=list(Block=pdCompSymm(ranEff1)))
works, I don't know the 'pdCompSymm' part in advance and would like to
make the process automatic.
On Wed, Aug 27, 2014 at 3:49 PM, David Winsemius <dwinsemius at comcast.net> wrote:
>
> On Aug 27, 2014, at 12:44 PM, Gang Chen wrote:
>
>> Thanks for the help! However, I just need to get
>>
>> pdCompSymm(~1 + Age)
>
> That's not a formula in the R sense of the word. You should do a better job of posting a use case. Perhaps you want an expression?
>
> --
> David.
>>
>> without a tilde (~) at the beginning.
>>
>> On Wed, Aug 27, 2014 at 3:34 PM, David Winsemius <dwinsemius at comcast.net> wrote:
>>>
>>> On Aug 27, 2014, at 11:19 AM, Gang Chen wrote:
>>>
>>>> A random effect formulation for R package nlme is read in as a string
>>>> of characters from an input file:
>>>>
>>>> ranEff <- "pdCompSymm(~1+Age)"
>>>>
>>>> I need to convert 'ranEff' to a formula class. However, as shown below:
>>>>
>>>>> as.formula(ranEff)
>>>> ~1 + Age
>>>>
>>>> the "pdCompSymm" is lost in the conversion. Any solutions?
>>>
>>> as.formula(paste("~",ranEff))
>>> ~pdCompSymm(~1 + Age)
>>> --
>>>
>>> David Winsemius
>>> Alameda, CA, USA
>>>
>
> David Winsemius
> Alameda, CA, USA
>
More information about the R-help
mailing list