nposargs | R Documentation |
Calculates the number of positional arguments used in a call.
nposargs(x, a = FALSE)
x |
a call object, usually obtained from |
a |
if |
nposargs
is mainly for use in the body of function definitions,
paricularly for functions or methods that wish to mimic the behaviour
of "["
.
nposargs
gives the number of positional arguments used in a
call. It also takes into account empty arguments like those used in
expressions like x[1, ]
.
Optionally, it makes a particular correction that is peculiar
for "[" - if there are no named arguments in the call and the count
of the arguments is 2 and a[1]=TRUE
, it decreases the count by
one, i.e. returns 1. This is to distinguish between a x[]
and
x[i]
which both would give 2 otherwise. I have forgotten the details but,
roughly speaking, x[i] becomes "["(x,i) while x[] becomes "["(x,),
i.e. R puts the comma after x in any case.
the number of positional arguments in the call
I wrote this function (a long time ago) for use in methods for
"["
.
a[1]
above is typically obtained by a call missing(i)
somewhere at the beginning of the function. In my application I put
the results of several such calls in a vector, hence the check for
a[1]
rather than a
, For "["
, we may set
a = c(missing(i), missing(j), missing(k))
.
Georgi N. Boshnakov
f <- function(x,y,z,...){ call <- sys.call() nposargs(call) } f(a,b,c) # 3 f(a, , ) # 3 f(a, ) # 2 f(a) # 1 f(, ) # 2 f(, a, ) # 3 f() # 0
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.