analyze_three_dots {lazy.tools} | R Documentation |
Analyze Three Dots and Return the Names and the Values
analyze_three_dots(..., omit_NULL = 1, print_the_result = 0, debug_Debug = 0)
... |
The three dots to be analyzed. |
omit_NULL |
= 0 to include the NULL arguments. |
print_the_result |
= 1 to print the result |
debug_Debug |
= 1 to print intermediate info |
... will be analyzed and the pair of ( name, val ) and name2
will be returned.
See the first example below.
Note that, when ... is used, partial match of formal and actual arguments
may cause a confusing error.
See the last example below.
A list of:
name A vector consisting of the names of each of ...
val A list consisting of the values of each of ... or NULL
name2 For the named arguments, name2 contains the righthand side of
the equal signs which appear in ... .
For the positional arguments, name2 contains the actual argument itself.
cc="cccc"
analyze_three_dots( a=1, b=c(2,3), cc, list(aa=1,2), diag(2) )
analyze_three_dots( a=1, b=c(2,3), cc=NULL, d=0, NULL )
analyze_three_dots( a=1, b=c(2,3), cc=NULL, d=0, NULL, omit_NULL=0 )
# a function to print all of ... with names
mprint <- function( ... ){
atd=analyze_three_dots( ... )
for( i in 1:length(atd$name) ){
cat(atd$name[i], ":", atd$name2[i],"\n")
print(atd$val[[i]])
}
}
mprint( 1:5, b=7:11 )
#'
# About partial match of the arguments
# "e" will be missing
test <- function( exp, ..., debug_Debug=0 ){
res=analyze_three_dots( ..., debug_Debug=debug_Debug )
Print(res)
}
expr="aaa"
test( expr, a=1, b=2, c=3, d=4, e=5, f=6, g=7 )