Re: [R] question about formula for lm

2007-06-16 Thread Mike Lawrence
Yet another solution:

with(X,lm(get(Ytext)~Xvar))

On 14-Jun-07, at 5:18 PM, Greg Snow wrote:


 Try:

 lm( formula( paste( Ytext, '~ Xvar' ) ), data=X)

 --  
 Gregory (Greg) L. Snow Ph.D.
 Statistical Data Center
 Intermountain Healthcare
 [EMAIL PROTECTED]
 (801) 408-8111



 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Pedro Mardones
 Sent: Thursday, June 14, 2007 1:14 PM
 To: R-help@stat.math.ethz.ch
 Subject: [R] question about formula for lm

 Dear all;

 Is there any way to make this to work?:

 .x-rnorm(50,10,3)
 .y-.x+rnorm(50,0,1)

 X-data.frame(.x,.y)
 colnames(X)-c(Xvar,Yvar)

 Ytext-Yvar

 lm(Ytext~Xvar,data=X) # doesn't run

 lm(Yvar~Xvar,data=X) # does run

 The main idea is to use Ytext as input in a function, so you
 just type Yvar and the model should fit
 Also, I need to avoid the expression X$Yvar~X$Xvar

 Thanks for any idea

 PM

 __
 R-help@stat.math.ethz.ch 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.


 __
 R-help@stat.math.ethz.ch 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.

--
Mike Lawrence
Graduate Student, Department of Psychology, Dalhousie University

Website: http://myweb.dal.ca/mc973993
Public calendar: http://icalx.com/public/informavore/Public

The road to wisdom? Well, it's plain and simple to express:
Err and err and err again, but less and less and less.
- Piet Hein

__
R-help@stat.math.ethz.ch 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.


Re: [R] question about formula for lm

2007-06-16 Thread Douglas Bates
On 6/14/07, Greg Snow [EMAIL PROTECTED] wrote:

 Try:

  lm( formula( paste( Ytext, '~ Xvar' ) ), data=X)

That type of construction is perilously close to parse(paste(...)) and
we know what Thomas said about that (see fortune(parse)).

A safer way of constructing a formula from names stored in a character
variable is

substitute(foo ~ Xvar, list(foo = as.name(Ytext))

  -Original Message-
  From: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED] On Behalf Of Pedro Mardones
  Sent: Thursday, June 14, 2007 1:14 PM
  To: R-help@stat.math.ethz.ch
  Subject: [R] question about formula for lm
 
  Dear all;
 
  Is there any way to make this to work?:
 
  .x-rnorm(50,10,3)
  .y-.x+rnorm(50,0,1)
 
  X-data.frame(.x,.y)
  colnames(X)-c(Xvar,Yvar)
 
  Ytext-Yvar
 
  lm(Ytext~Xvar,data=X) # doesn't run
 
  lm(Yvar~Xvar,data=X) # does run
 
  The main idea is to use Ytext as input in a function, so you
  just type Yvar and the model should fit
  Also, I need to avoid the expression X$Yvar~X$Xvar
 
  Thanks for any idea
 
  PM
 
  __
  R-help@stat.math.ethz.ch 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.
 

 __
 R-help@stat.math.ethz.ch 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.


__
R-help@stat.math.ethz.ch 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.


Re: [R] question about formula for lm

2007-06-16 Thread Gabor Grothendieck
A couple of easy ways are to create the calling sequence as a call or
character string and then evaluate it:

eval(bquote(lm(.(as.name(Ytext)) ~ Xvar, X)))

eval(parse(text = paste(lm(, Ytext, ~ Xvar, X

Note that these solutions both have the advantage over some of the prior
solutions that the output from print.lm shows which variable was actually used
after Call:


 eval(bquote(lm(.(as.name(Ytext)) ~ Xvar, X)))
Call:
lm(formula = Yvar ~ Xvar, data = X)  --- This line comes out meaningfully!!!

Coefficients:
(Intercept) Xvar
 0.3300   0.9729


On 6/14/07, Pedro Mardones [EMAIL PROTECTED] wrote:
 Dear all;

 Is there any way to make this to work?:

 .x-rnorm(50,10,3)
 .y-.x+rnorm(50,0,1)

 X-data.frame(.x,.y)
 colnames(X)-c(Xvar,Yvar)

 Ytext-Yvar

 lm(Ytext~Xvar,data=X) # doesn't run

 lm(Yvar~Xvar,data=X) # does run

 The main idea is to use Ytext as input in a function, so you just type
 Yvar and the model should fit
 Also, I need to avoid the expression X$Yvar~X$Xvar

 Thanks for any idea

 PM

 __
 R-help@stat.math.ethz.ch 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.


__
R-help@stat.math.ethz.ch 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.


Re: [R] question about formula for lm

2007-06-14 Thread Thomas Petzoldt
Why not using:

lm(X[[Ytext]]~Xvar,data=X)


ThPe


Pedro Mardones wrote:
 Dear all;
 
 Is there any way to make this to work?:
 
 .x-rnorm(50,10,3)
 .y-.x+rnorm(50,0,1)
 
 X-data.frame(.x,.y)
 colnames(X)-c(Xvar,Yvar)
 
 Ytext-Yvar
 
 lm(Ytext~Xvar,data=X) # doesn't run
 
 lm(Yvar~Xvar,data=X) # does run
 
 The main idea is to use Ytext as input in a function, so you just type
 Yvar and the model should fit
 Also, I need to avoid the expression X$Yvar~X$Xvar
 
 Thanks for any idea
 
 PM
 
 __
 R-help@stat.math.ethz.ch 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.

__
R-help@stat.math.ethz.ch 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.


Re: [R] question about formula for lm

2007-06-14 Thread John Kane
First check the value of Ytext. 

Try 
Ytext - X$Yvar

--- Pedro Mardones [EMAIL PROTECTED] wrote:

 Dear all;
 
 Is there any way to make this to work?:
 
 .x-rnorm(50,10,3)
 .y-.x+rnorm(50,0,1)
 
 X-data.frame(.x,.y)
 colnames(X)-c(Xvar,Yvar)
 
 Ytext-Yvar
 
 lm(Ytext~Xvar,data=X) # doesn't run
 
 lm(Yvar~Xvar,data=X) # does run
 
 The main idea is to use Ytext as input in a
 function, so you just type
 Yvar and the model should fit
 Also, I need to avoid the expression X$Yvar~X$Xvar
 
 Thanks for any idea
 
 PM
 
 __
 R-help@stat.math.ethz.ch 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.


__
R-help@stat.math.ethz.ch 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.


Re: [R] question about formula for lm

2007-06-14 Thread Greg Snow

Try:

 lm( formula( paste( Ytext, '~ Xvar' ) ), data=X)

-- 
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
[EMAIL PROTECTED]
(801) 408-8111
 
 

 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of Pedro Mardones
 Sent: Thursday, June 14, 2007 1:14 PM
 To: R-help@stat.math.ethz.ch
 Subject: [R] question about formula for lm
 
 Dear all;
 
 Is there any way to make this to work?:
 
 .x-rnorm(50,10,3)
 .y-.x+rnorm(50,0,1)
 
 X-data.frame(.x,.y)
 colnames(X)-c(Xvar,Yvar)
 
 Ytext-Yvar
 
 lm(Ytext~Xvar,data=X) # doesn't run
 
 lm(Yvar~Xvar,data=X) # does run
 
 The main idea is to use Ytext as input in a function, so you 
 just type Yvar and the model should fit
 Also, I need to avoid the expression X$Yvar~X$Xvar
 
 Thanks for any idea
 
 PM
 
 __
 R-help@stat.math.ethz.ch 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.


__
R-help@stat.math.ethz.ch 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.