[R] Help with R: functions

Liaw, Andy andy_liaw at merck.com
Mon Jan 30 15:17:41 CET 2006


This might be a bit closer to what Pryseley wanted:

st <- function(dat, x, y) {
    f <- formula(substitute(y ~ x), env=environment(dat))
    plot(f, dat)
    abline(lm(f, dat))
}

Note that the variable names in the plot when tested on `dats' as Pryseley
created.

Andy

From: Jacques VESLOT
> 
> st <- function(data, x, y){
>     attach(data)
>     rcc <- coef(lm(y~x))
>     plot(x,y)
>     abline(rcc)
>     detach(data)}
> 
> st(data=dats, x=visual24, y=visual52)
> 
> 
> 
> Pryseley Assam a écrit :
> 
> >Hello R-users
> >   
> >  I am new to R and trying to write some functions. I have 
> problems writing functions that takes a data set as an 
> arguement and uses variables in the data. I illustrate my 
> problem with a small example below:
> >   
> >   sample data   #------------------
> >  visual24<-rnorm(30,3,5)
> >  visual52<-rt(30,7)
> >  dats<- data.frame(cbind(visual24,visual52))
> >  remove(visual24, visual52)
> >   
> >  # first code
> >  #--------------
> >  st <-function(data,x,y){
> >  rcc<-coef(lm(y~x))
> >  plot(x,y)
> >  abline(rcc[1],rcc[2])
> >  }
> >  st(data=dats,x=dats$visual24,y=dats$visual52)
> >   
> >  This code works fine, but with such a code the data as an 
> arguement to the funtion is not necessary. 
> >  However, i wish to write a function that reads the 
> variables from the data directly.
> >  I tried using the function below but it does not work. 
> >   
> >  # second code
> >  #------------------
> >  st <-function(data,x,y){
> >  rcc<-coef(lm(data$y~data$x))
> >  plot(data$x,data$y)
> >  abline(rcc[1],rcc[2])
> >  }
> >  st(dats,visual24,visual52)
> >   
> >  I wish to inquire if any one has an idea of what i need to 
> adjust in the function so that it works.
> >  I believe that the referencing $x or $y in the function is 
> not doing the correct thing.
> >   
> >  Better still, will it be a problem if i code the functions 
> as in the first code above?
> >  I mean given that they will be used to create a library
> >   
> >  Best regards
> >  Pryseley
> >   
> >
> >
> >		
> >---------------------------------
> >
> >
> >	[[alternative HTML version deleted]]
> >
> >______________________________________________
> >R-help at 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 at 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
> 
>




More information about the R-help mailing list