Learn R Programming

gbutils (version 0.2-1)

nposargs: Function to count the number of positional arguments used in a call

Description

Calculates the number of positional arguments used in a call.

Usage

nposargs(x, a = FALSE)

Arguments

x

a call object, usually obtained from sys.call().

a

if a[1] is TRUE make a correction to distinguish x[] from x[i], see details.

Value

the number of positional arguments in the call

Details

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.

Examples

Run this code
# NOT RUN {
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
# }

Run the code above in your browser using DataLab