R: Length of an Object

length {base} | R Documentation

## Length of an Object

### Description

Get or set the length of vectors (including lists) and factors, and of any other R object for which a method has been defined.

### Usage

    length(x)
    length(x) <- value

### Arguments

`x` | an R object. For replacement, a vector or factor.
`value` | a non-negative integer or double (which will be rounded down).

### Details

Both functions are generic: you can write methods to handle specific classes of objects, see InternalMethods. `length<-` has a `"factor"` method.

The replacement form can be used to reset the length of a vector. If a vector is shortened, extra values are discarded and when a vector is lengthened, it is padded out to its new length with `NA`s (`nul` for raw vectors).

Both are primitive functions.

### Value

The default method for `length` currently returns a non-negative `integer` of length 1, except for vectors of more than 2^31 - 1 elements, when it returns a double.

For vectors (including lists) and factors the length is the number of elements. For an environment it is the number of objects in the environment, and `NULL` has length 0. For expressions and pairlists (including language objects and dotlists) it is the length of the pairlist chain. All other objects (including functions) have length one: note that for functions this differs from S.

The replacement form removes all the attributes of `x` except its names, which are adjusted (and if necessary extended by `""`).

### Warning

Package authors have written methods that return a result of length other than one (Formula) and that return a vector of type `double` (Matrix), even with non-integer values (earlier versions of sets). Where a single double value is returned that can be represented as an integer it is returned as a length-one integer vector.

As from R 3.0.0, lengths can be returned as double in base R.

### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

### See Also

`nchar` for counting the number of characters in character vectors.

### Examples

    length(diag(4))  # = 16 (4 x 4)
    length(options())  # 12 or more
    length(y ~ x1 + x2 + x3)  # 3
    length(expression(x, {y <- x^2; y+2}, x^y))  # 3

    ## from example(warpbreaks)
    require(stats)

    fm1 <- lm(breaks ~ wool * tension, data = warpbreaks)
    length(fm1$call)      # 3, lm() and two arguments.
    length(formula(fm1))  # 3, ~ lhs rhs

[Package base version 3.1.2 Index]