[R] Passing arguments to glm()

2006-06-30 Thread Christian Bieli
Hi there

I want to pass arguments (i.e. the response variable and the subset 
argument) in a self-made function to glm.
Here is one way I can do this:

f.myglm - function(y,subfact,subval) {
  
glm(d.mydata[,y]~d.mydata[,'x1'],family=binomial,subset=d.mydata[,subfact]==subval)
}

  str(d.mydata)
`data.frame':15806 obs. of  3 variables:
 $ y : Factor w/ 2 levels no,yes: 1 1 1 1 1 1 1 NA 1 1 ...
 $ x1: Factor w/ 2 levels no,yes: 2 2 1 2 2 2 2 2 2 2 ...
 $ x2: Factor w/ 2 levels no,yes: 1 1 1 1 1 2 2 1 2 2 ...

  f.myglm('y','x2','yes')

But is there a way I can pass the arguments and use the data argument of 
glm()?
In a naive way of thinking I'd like to something like this:
f.myglm - function(y,sub) {
  glm(y~x1,family=binomial,data=d.mydata,subset=sub)
}
  f.myglm(y=y,sub=x2=='yes')

I know that's not possible, because the objects y and x2 are not defined 
in the user workspace.
So, something like passing the arguments as an expression and evaluate 
it in the glm function should work, but I didn't manage to do it.

I'd appreciate your advice.
Christian

  R.version
 _ 
platform i386-pc-mingw32
arch i386  
os   mingw32   
system   i386, mingw32 
status 
major2 
minor2.1   
year 2005  
month12
day  20
svn rev  36812 
language R

__
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


Re: [R] Passing arguments to glm()

2006-06-30 Thread Jacques VESLOT
  f.myglm - function(y=y, subset=x2 == 'yes', data=d.d.mydata) 
  eval(parse(text=glm(, 
deparse(substitute(y)), ~ x1, family=binomial, data=, 
deparse(substitute(data)), , subset =, 
subset, )))
  f.myglm()

---
Jacques VESLOT

CNRS UMR 8090
I.B.L (2ème étage)
1 rue du Professeur Calmette
B.P. 245
59019 Lille Cedex

Tel : 33 (0)3.20.87.10.44
Fax : 33 (0)3.20.87.10.31

http://www-good.ibl.fr
---


Christian Bieli a écrit :
 Hi there
 
 I want to pass arguments (i.e. the response variable and the subset 
 argument) in a self-made function to glm.
 Here is one way I can do this:
 
 f.myglm - function(y,subfact,subval) {
   
 glm(d.mydata[,y]~d.mydata[,'x1'],family=binomial,subset=d.mydata[,subfact]==subval)
 }
 
   str(d.mydata)
 `data.frame':15806 obs. of  3 variables:
  $ y : Factor w/ 2 levels no,yes: 1 1 1 1 1 1 1 NA 1 1 ...
  $ x1: Factor w/ 2 levels no,yes: 2 2 1 2 2 2 2 2 2 2 ...
  $ x2: Factor w/ 2 levels no,yes: 1 1 1 1 1 2 2 1 2 2 ...
 
   f.myglm('y','x2','yes')
 
 But is there a way I can pass the arguments and use the data argument of 
 glm()?
 In a naive way of thinking I'd like to something like this:
 f.myglm - function(y,sub) {
   glm(y~x1,family=binomial,data=d.mydata,subset=sub)
 }
   f.myglm(y=y,sub=x2=='yes')
 
 I know that's not possible, because the objects y and x2 are not defined 
 in the user workspace.
 So, something like passing the arguments as an expression and evaluate 
 it in the glm function should work, but I didn't manage to do it.
 
 I'd appreciate your advice.
 Christian
 
   R.version
  _ 
 platform i386-pc-mingw32
 arch i386  
 os   mingw32   
 system   i386, mingw32 
 status 
 major2 
 minor2.1   
 year 2005  
 month12
 day  20
 svn rev  36812 
 language R
 
 __
 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


__
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


Re: [R] Passing arguments to glm()

2006-06-30 Thread Jacques VESLOT
i forgot a paste():
f.myglm - function(y=y, subset=x2 == 'yes', data=d.d.mydata) 
eval(parse(text=paste(glm(,
deparse(substitute(y)), ~ x1, family=binomial, data=, 
deparse(substitute(data)), , subset =,
subset, ), sep=)))
---
Jacques VESLOT

CNRS UMR 8090
I.B.L (2ème étage)
1 rue du Professeur Calmette
B.P. 245
59019 Lille Cedex

Tel : 33 (0)3.20.87.10.44
Fax : 33 (0)3.20.87.10.31

http://www-good.ibl.fr
---

Jacques VESLOT a écrit :
   f.myglm - function(y=y, subset=x2 == 'yes', data=d.d.mydata) 
 eval(parse(text=glm(, 
 deparse(substitute(y)), ~ x1, family=binomial, data=, 
 deparse(substitute(data)), , subset =, 
 subset, )))
   f.myglm()
 
 ---
 Jacques VESLOT
 
 CNRS UMR 8090
 I.B.L (2ème étage)
 1 rue du Professeur Calmette
 B.P. 245
 59019 Lille Cedex
 
 Tel : 33 (0)3.20.87.10.44
 Fax : 33 (0)3.20.87.10.31
 
 http://www-good.ibl.fr
 ---
 
 
 Christian Bieli a écrit :
 
Hi there

I want to pass arguments (i.e. the response variable and the subset 
argument) in a self-made function to glm.
Here is one way I can do this:

f.myglm - function(y,subfact,subval) {
  
glm(d.mydata[,y]~d.mydata[,'x1'],family=binomial,subset=d.mydata[,subfact]==subval)
}

  str(d.mydata)
`data.frame':15806 obs. of  3 variables:
 $ y : Factor w/ 2 levels no,yes: 1 1 1 1 1 1 1 NA 1 1 ...
 $ x1: Factor w/ 2 levels no,yes: 2 2 1 2 2 2 2 2 2 2 ...
 $ x2: Factor w/ 2 levels no,yes: 1 1 1 1 1 2 2 1 2 2 ...

  f.myglm('y','x2','yes')

But is there a way I can pass the arguments and use the data argument of 
glm()?
In a naive way of thinking I'd like to something like this:
f.myglm - function(y,sub) {
  glm(y~x1,family=binomial,data=d.mydata,subset=sub)
}
  f.myglm(y=y,sub=x2=='yes')

I know that's not possible, because the objects y and x2 are not defined 
in the user workspace.
So, something like passing the arguments as an expression and evaluate 
it in the glm function should work, but I didn't manage to do it.

I'd appreciate your advice.
Christian

  R.version
 _ 
platform i386-pc-mingw32
arch i386  
os   mingw32   
system   i386, mingw32 
status 
major2 
minor2.1   
year 2005  
month12
day  20
svn rev  36812 
language R

__
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

 
 
 __
 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


__
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


Re: [R] Passing arguments to glm()

2006-06-30 Thread Gabor Grothendieck
This is the same as glm except that
- formula may be of class character in which case its
  regarded as the name of the response variable and
  the formula defaults to resp ~ Species for that response
- the data frame defaults to iris
- modify as appropriate for your case

myglm - function (formula, family = gaussian, data,
weights, subset, na.action, start = NULL, etastart, mustart, offset,
control = glm.control(...), model = TRUE, method = glm.fit,
x = FALSE, y = TRUE, contrasts = NULL, ...) {
cl - match.call()
cl[[1]] - as.name(glm)
if (is.character(formula)) {
   fo - . ~ Species  ### default formula
   fo[[2]] - as.name(formula)
   cl$formula - fo
}
if (missing(data)) cl$data - as.name(iris) # default data frame
eval(cl, parent.frame())
}
# test
myglm(Sepal.Length, subset = Petal.Length  mean(Petal.Length))
myglm(Sepal.Length ~ Petal.Length)
myglm(Sepal.Length, subset = 1:100)


On 6/30/06, Christian Bieli [EMAIL PROTECTED] wrote:
 Hi there

 I want to pass arguments (i.e. the response variable and the subset
 argument) in a self-made function to glm.
 Here is one way I can do this:

 f.myglm - function(y,subfact,subval) {

 glm(d.mydata[,y]~d.mydata[,'x1'],family=binomial,subset=d.mydata[,subfact]==subval)
 }

   str(d.mydata)
 `data.frame':15806 obs. of  3 variables:
  $ y : Factor w/ 2 levels no,yes: 1 1 1 1 1 1 1 NA 1 1 ...
  $ x1: Factor w/ 2 levels no,yes: 2 2 1 2 2 2 2 2 2 2 ...
  $ x2: Factor w/ 2 levels no,yes: 1 1 1 1 1 2 2 1 2 2 ...

   f.myglm('y','x2','yes')

 But is there a way I can pass the arguments and use the data argument of
 glm()?
 In a naive way of thinking I'd like to something like this:
 f.myglm - function(y,sub) {
  glm(y~x1,family=binomial,data=d.mydata,subset=sub)
 }
   f.myglm(y=y,sub=x2=='yes')

 I know that's not possible, because the objects y and x2 are not defined
 in the user workspace.
 So, something like passing the arguments as an expression and evaluate
 it in the glm function should work, but I didn't manage to do it.

 I'd appreciate your advice.
 Christian

   R.version
 _
 platform i386-pc-mingw32
 arch i386
 os   mingw32
 system   i386, mingw32
 status
 major2
 minor2.1
 year 2005
 month12
 day  20
 svn rev  36812
 language R

 __
 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


__
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