[R] Variable Argument Function
Ben Tupper
btupper at bigelow.org
Mon Feb 8 01:14:38 CET 2016
Hi,
> On Feb 7, 2016, at 6:24 PM, Duncan Murdoch <murdoch.duncan at gmail.com> wrote:
>
> On 07/02/2016 6:12 PM, Robert Sherry wrote:
>>
>> I would like to write a function in R that would take a variable number
>> of integers as parameters. I do not have a pressing reason to do this, I
>> am just trying to learn R. I thought a good first step would be to print
>> out the arguments. So I wrote the following function:
>>
>> f1 = function (...)
>> {
>> list1 = as.list(...)
>
> This is wrong. The ... object is weird; it's not something that can be coerced to a list. However, you can pass it as list(...) and it will give you what you were expecting.
>
Do you mean that Bob should nest a function within f1? Like this?
f1 = function (...){
f2 <- function(list1){
for( i in 1:length(list1) ) cat( "i is ", list1[[i]], "\n" )
return (0)
}
f2(list(...))
}
f1(2,4,10,12)
> f1(2,4,10,12)
i is 2
i is 4
i is 10
i is 12
Ben
> The theory is that it will expand to multiple arguments to the list() function, which constructs a list containing them. as.list() doesn't want a bunch of arguments, it will just ignore most of them.
>
> Duncan Murdoch
>
>> for( i in 1:length(list1) )
>> cat( "i is ", list1[[i]], "\n" )
>> return (0)
>> }
>>
>> I ran it as:
>> f1(2,4,10,12)
>> and I get:
>> i is 2
>> [1] 0
>> I was hoping for
>> i is 2
>> i is 4
>> i is 10
>> i is 12
>>
>> I am hoping somebody can tell me what I am doing wrong. Is using a list
>> a bad idea?
>>
>> Thanks
>> Bob
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
>>
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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
More information about the R-help
mailing list