[R] Function call within a function.

Stephen Tucker brown_emu at yahoo.com
Fri Jun 29 00:00:38 CEST 2007


Dear John,

Perhaps I am mistaken in what you are trying to accomplish but it seems like
what is required is that you call lstfun() outside of ukn(). [and remove the
call to lstfun() in ukn()].

nts <- lstfun(myfile, aa, bb)
results <- ukn(dd1, "a", "b", nts$cda)

Alternatively, you can eliminate the fourth argument in ukn() and assign (via
'<-') the results of lstfun() to 'nam1' within ukn() instead of saving to
'nts'...

--- John Kane <jrkrideau at yahoo.ca> wrote:

> I am trying to call a funtion within another function
> and I clearly am misunderstanding what I should do. 
> Below is a simple example.
> I know lstfun works on its own but I cannot seem to
> figure out how to get it to work within ukn. Basically
> I need to create the variable "nts". I have probably
> missed something simple in the Intro or FAQ.
> 
> Any help would be much appreciated.
> 
> EXAMPLE
>
-------------------------------------------------------------------------------
> # create data.frame
> cata <- c( 1,1,6,1,1,4)
> catb <- c( 1,2,3,4,5,6)
> id <- c('a', 'b', 'b', 'a', 'a', 'b')
> dd1  <-  data.frame(id, cata,catb)
> 
> # function to create list from data.frame
> lstfun  <- function(file, alpha , beta ) {
> cda  <-  subset(file, file[,1] == alpha)
> cdb  <-  subset (file, file[,1]== beta)
> list1 <- list(cda,cdb)
> }
> 
> # funtion to operate on list
> ukn  <-  function(file, alpha, beta, nam1){
> aa  <- alpha
> bb  <- beta
> myfile  <- file
> nts <- lstfun(myfile, aa, bb)
> mysum <- nam1[,3]*5
> return(mysum)
> }
> 
> results <- ukn(dd1, "a", "b", nts$cda)
> 
> ______________________________________________
> 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
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list