[R] Help with R: functions

Jacques VESLOT jacques.veslot at cirad.fr
Mon Jan 30 14:46:00 CET 2006


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
>
>  
>




More information about the R-help mailing list