Subirana Cachinero, Isaac
2018-Dec-10 06:49 UTC
[R] repeating the same variable in formula
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>f <- y ~ cholesterol + age + age>attr(terms(f),"term.labels")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. [[alternative HTML version deleted]]
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:> y ~ cholesterol + age + age
Subirana Cachinero, Isaac
2018-Dec-10 10:35 UTC
[R] repeating the same variable in formula
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:> y ~ cholesterol + age + age