Lopez, Dan
2013-Nov-19  01:52 UTC
[R] Passing parameters in a user defined function to another function using ...
Hi R Experts,
How do you get the ... to work in a user-defined function such as the one I have
below?
For example if I want to pass replace=TRUE to the sample function.
# This is a sample function that generates x rows of z numbers out of y.
Basically a lottery style data set.
mynumbs<-function(x,y,z=5,...){
  #x should be a scalar indicating number of rows
  #y & z are passed to sample function
  #in the future will add option to output as data.frame instead of matrix
  numbs<-sort(sample(y,z))
  for (i in 1:(x-1))
    numbs<-rbind(numbs,sort(sample(y,z)))
  print(numbs)
}
	[[alternative HTML version deleted]]
Ben Tupper
2013-Nov-19  02:00 UTC
[R] Passing parameters in a user defined function to another function using ...
Hi,
It's easy, just carry the arguments in '?' forward to where you
expect to pass them along.
mynumbs<-function(x,y,z=5,...){
 numbs<-sort(sample(y,z, ...))
 for (i in 1:(x-1))
   numbs<-rbind(numbs,sort(sample(y,z, ...)))
 print(numbs)
}
Cheers,
Ben
On Nov 18, 2013, at 8:52 PM, "Lopez, Dan" <lopez235 at llnl.gov>
wrote:
> Hi R Experts,
> 
> How do you get the ... to work in a user-defined function such as the one I
have below?
> For example if I want to pass replace=TRUE to the sample function.
> 
> # This is a sample function that generates x rows of z numbers out of y.
Basically a lottery style data set.
> 
> mynumbs<-function(x,y,z=5,...){
>  #x should be a scalar indicating number of rows
>  #y & z are passed to sample function
>  #in the future will add option to output as data.frame instead of matrix
> 
>  numbs<-sort(sample(y,z))
>  for (i in 1:(x-1))
>    numbs<-rbind(numbs,sort(sample(y,z)))
>  print(numbs)
> }
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at r-project.org 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.
Ben Tupper
Bigelow Laboratory for Ocean Sciences
60 Bigelow Drive, P.O. Box 380
East Boothbay, Maine 04544
http://www.bigelow.org
Richard M. Heiberger
2013-Nov-19  02:38 UTC
[R] Passing parameters in a user defined function to another function using ...
numbs <- rbind(numbs, sort(sample(y, z, ... ))) See ?Reserved which sends you to 'Introduction to R' Rich On Mon, Nov 18, 2013 at 8:52 PM, Lopez, Dan <lopez235 at llnl.gov> wrote:> Hi R Experts, > > How do you get the ... to work in a user-defined function such as the one I have below? > For example if I want to pass replace=TRUE to the sample function. > > # This is a sample function that generates x rows of z numbers out of y. Basically a lottery style data set. > > mynumbs<-function(x,y,z=5,...){ > #x should be a scalar indicating number of rows > #y & z are passed to sample function > #in the future will add option to output as data.frame instead of matrix > > numbs<-sort(sample(y,z)) > for (i in 1:(x-1)) > numbs<-rbind(numbs,sort(sample(y,z))) > print(numbs) > } > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org 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.
Lopez, Dan
2013-Nov-19  02:47 UTC
[R] Passing parameters in a user defined function to another function using ...
Thanks Ben.
I feel really dumb. I did enter '...' in my sample function in another
version of this function. But I just realized I had only done it for the second
occurrence of the sample function and not the first.
Dan
-----Original Message-----
From: Ben Tupper [mailto:btupper at bigelow.org] 
Sent: Monday, November 18, 2013 6:00 PM
To: Lopez, Dan
Cc: R help (r-help at r-project.org)
Subject: Re: [R] Passing parameters in a user defined function to another
function using ...
Hi,
It's easy, just carry the arguments in '...' forward to where you
expect to pass them along.
mynumbs<-function(x,y,z=5,...){
 numbs<-sort(sample(y,z, ...))
 for (i in 1:(x-1))
   numbs<-rbind(numbs,sort(sample(y,z, ...)))
 print(numbs)
}
Cheers,
Ben
On Nov 18, 2013, at 8:52 PM, "Lopez, Dan" <lopez235 at llnl.gov>
wrote:
> Hi R Experts,
> 
> How do you get the ... to work in a user-defined function such as the one I
have below?
> For example if I want to pass replace=TRUE to the sample function.
> 
> # This is a sample function that generates x rows of z numbers out of y.
Basically a lottery style data set.
> 
> mynumbs<-function(x,y,z=5,...){
>  #x should be a scalar indicating number of rows  #y & z are passed to 
> sample function  #in the future will add option to output as 
> data.frame instead of matrix
> 
>  numbs<-sort(sample(y,z))
>  for (i in 1:(x-1))
>    numbs<-rbind(numbs,sort(sample(y,z)))
>  print(numbs)
> }
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at r-project.org 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.
Ben Tupper
Bigelow Laboratory for Ocean Sciences
60 Bigelow Drive, P.O. Box 380
East Boothbay, Maine 04544
http://www.bigelow.org