row.names                package:base                R Documentation

Get and Set Row Names for Data Frames

Description:

     All data frames have a row names attribute, a character vector of
     length the number of rows with no duplicates nor missing values.

     For convenience, these are generic functions for which users can
     write other methods, and there are default methods for arrays. 
     The description here is for the 'data.frame' method.

Usage:

     row.names(x)
     row.names(x) <- value

Arguments:

       x: object of class '"data.frame"', or any other class for which
          a method has been defined.

   value: an object to be coerced to character unless an integer
          vector.  It should have (after coercion) the same length as
          the number of rows of 'x' with no duplicated nor missing
          values. 'NULL' is also allowed: see 'Details'.

Details:

     A data frame has (by definition) a vector of _row names_ which has
     length the number of rows in the data frame, and contains neither
     missing nor duplicated values.  Where a row names sequence has
     been added by the software to meet this requirement, they are
     regarded as 'automatic'.

     Row names were character are allowed to be integer or character,
     but for backwards compatibility (with R <= 2.4.0) 'row.names' will
     always return a character vector.  (Use 'attr(x, "row.names")' if
     you need an integer value.)

     Using 'NULL' for the value resets the row names to
     'seq_len(nrow(x))', regarded as 'automatic'.

Value:

     'row.names' returns a character vector.

     'row.names<-' returns a data frame with the row names changed.

Note:

     'row.names' is similar to 'rownames' for arrays, and it has a
     method that calls 'rownames' for an array argument.

     Row names of the form '1:n' for 'n > 2' are stored internally in a
     compact form, which might be seen from C code or by deparsing but
     never via 'row.names' or 'attr(x, "row.names")'.  Additionally,
     some names of this sort are marked as 'automatic' and handled
     differently by 'as.matrix' and 'data.matrix' (and potentially
     other functions).  (All zero-row data frames are regarded as
     having automatic row.names.)

References:

     Chambers, J. M. (1992) _Data for models._ Chapter 3 of
     _Statistical Models in S_ eds J. M. Chambers and T. J. Hastie,
     Wadsworth & Brooks/Cole.

See Also:

     'data.frame', 'rownames', 'names'.

     '.row_names_info' for the internal representations.

