Skip to content

repeating the same variable in formula

5 messages · Subirana Cachinero, Isaac, Rui Barradas, Peter Dalgaard

#
I am using terms.formula function to substract the variables from a formula environment.

Concretely, with the attr(*, "term.labels") I get the right side terms specified in the formula.

However, when introducing the same variable two or more times, this appears only once.

For example, when typing
I get



[1] "cholesterol" "age"



and I would like to get



[1] "cholesterol" "age" "age"





Is it possible with terms.formula function to obtain the variables and the times that they are specified in the formula? Or may I use another function?



Thanks in advance.



Isaac.
#
Hello,

The formulas

y ~ cholesterol + age + age

and

y ~ cholesterol + age

are the same formula.
If you want 'age' twice, maybe

g <- y ~ cholesterol + I(age + age)
attr(terms(g), "term.labels")
#[1] "cholesterol"  "I(age + age)"


Hope this helps,

Rui Barradas

?s 06:49 de 10/12/2018, Subirana Cachinero, Isaac escreveu:
#
Thank you for your response.
In fact, I use the formula environament to select variables, as part of the code of another function.
I would like to allow the user to select the same variable more than once.
The use of I() may partly solve the problem. However, I would like attr(terms(g),"term.labels") would return a vector with as many components as variables including repetitions. And using I() function, there would be some work remaining to split "I(age + age)" into "age", "age", taking into account that in other examples variable may include white spaces or other characters within ` `.

Isaac.

-----Mensaje original-----
De: Rui Barradas [mailto:ruipbarradas at sapo.pt] 
Enviado el: lunes, 10 de diciembre de 2018 11:27
Para: Subirana Cachinero, Isaac; r-help at r-project.org
Asunto: Re: [R] repeating the same variable in formula

Hello,

The formulas

y ~ cholesterol + age + age

and

y ~ cholesterol + age

are the same formula.
If you want 'age' twice, maybe

g <- y ~ cholesterol + I(age + age)
attr(terms(g), "term.labels")
#[1] "cholesterol"  "I(age + age)"


Hope this helps,

Rui Barradas

?s 06:49 de 10/12/2018, Subirana Cachinero, Isaac escreveu:
#
You might be looking for this:
[1] "chol" "age"  "age" 


-pd

  
    
#
Thank you very much.
This is exactly what I needed.

Isaac.

-----Mensaje original-----
De: peter dalgaard [mailto:pdalgd at gmail.com] 
Enviado el: lunes, 10 de diciembre de 2018 15:10
Para: Subirana Cachinero, Isaac
CC: Rui Barradas; r-help at r-project.org
Asunto: Re: [R] repeating the same variable in formula

You might be looking for this:
[1] "chol" "age"  "age" 


-pd