[R] Problem with terms of the form (a >1) and subsetting of a terms object

Niels Richard Hansen Niels.R.Hansen+lists at math.ku.dk
Thu Aug 26 10:35:13 CEST 2010



On 26/08/10 09.30, Dimitris Rizopoulos wrote:
> I think you need an I(), i.e.,
>
> form <- ~ I(a > 1) - 1

Yes, it solves the concrete problem, but does not really answer
the question. Let me rephrase. Should the use of terms like (a>1)
be discouraged in R and replaced by I(a>1) systematically, or is the
behavior below unexpected?

Best, Niels

>
>
> I hope it helps.
>
> Best,
> Dimitris
>
>
> On 8/26/2010 9:17 AM, Niels Richard Hansen wrote:
>> I have the following problem
>>
>> mydata <- data.frame(a=1:3)
>> form <- ~ (a>1) - 1
>> model.matrix(form,mydata)
>>
>> a > 1FALSE a > 1TRUE
>> 1 1 0
>> 2 0 1
>> 3 0 1
>> ...
>>
>> However
>>
>> model.matrix(update(terms(form)[1],~.-1),mydata)
>>
>> (Intercept) a > 1 - 1TRUE
>> 1 1 1
>> 2 1 1
>> 3 1 1
>> ...
>>
>> Taking
>>
>> terms(form)[1]
>>
>> extracts the formula with only the first term, but the parentheses
>> are thrown away, and after the update, I get a different formula.
>> Is that supposed to be so?
>>
>> Thanks, Niels
>>
>

-- 
Niels Richard Hansen                     Web:   www.math.ku.dk/~richard	
Associate Professor			 Email: Niels.R.Hansen at math.ku.dk
Department of Mathematical Sciences	        nielsrichardhansen at gmail.com
University of Copenhagen		 Skype: nielsrichardhansen.dk	
Universitetsparken 5			 Phone: +45 353 20783 (office)	
2100 Copenhagen Ø			        +45 2859 0765 (mobile)
Denmark



More information about the R-help mailing list