[Rd] what should names(x) be padded with when length(x) is increased?

William Dunlap wdunlap at tibco.com
Sat Sep 19 00:34:32 CEST 2009


R version 2.10.0 Under development (unstable) (2009-09-08 r49628)

Here are two somewhat related questions.

First, when we attach a too short names vector to a vector
the names vector is padded with NA's to the length of the
main vector:  E.g.,
   > x<-1:3
   > names(x)<-c("One","Two")
   > str(x)
    Named int [1:3] 1 2 3
    - attr(*, "names")= chr [1:3] "One" "Two" NA
I expected this length mismatch to cause an error, but I am
biassed by my long usage of S and S+.  Is the extension by
padding with NA what is wanted?

Second, if we extend a named vector with length<- the main
vector is padded with NA's but the names are padded with
empty strings.  Should those be NA's?

   > x<-1:3
   > names(x)<-c("One","Two")
   > length(x)<-4
   > str(x)
    Named int [1:4] 1 2 3 NA
    - attr(*, "names")= chr [1:4] "One" "Two" NA ""

The names "" and NA act alike in that subscript by either
returns structure(NA, names=NA_character_), but they
print differently
   > x
    One  Two <NA>
     1    2    3   NA


Bill Dunlap
TIBCO Software Inc - Spotfire Division
wdunlap tibco.com 



More information about the R-devel mailing list