Skip to content

wish list: default row.names in data.frame()

1 message · David James

#
Hi,

Consider the row.names of

   a <- data.frame(x = runif(150000))
   > row.names(a)[99998:100002]
   [1] "99998"  "99999"  "1e+05"  "100001" "100002"

not wrong, but there's room for improvement.  If we replace the
expression 

   if (length(row.names) == 0)
        row.names <- seq(length = nr)

which creates a non-integer object row.names by

   if (length(row.names) == 0)
        row.names <- if(nr>0) 1:nr else integer(0) 

(or something to that effect) to create an integer row.names
that when coerced to character will produce

   b <- data.frame(x = runif(150000))
   > row.names(b)[99998:100002]
   [1] "99998"  "99999"  "100000" "100001" "100002"

These labels have a more uniform format.  

Could a change like this be made to data.frame()?

Regards,