Working in r-devel, we're not allowed to use a list component name of "":
> list(a = 1, "" = 2) Error: attempt to use zero-length variable name However, that's what gets reported to us if we create a list with no name: > x <- list(a = 1, 2) > names(x) [1] "a" "" The names<- function apparently doesn't check for the error: > x <- list(1, 2) > names(x) <- c("a", "") > names(x) [1] "a" "" and it allows all names to be blank: > names(x) <- c("", "") > names(x) [1] "" "" However, if we do it with a piece of language, things are different: > x <- quote(list(1,2)) > x list(1, 2) > mode(x) [1] "call" > names(x) NULL > names(x) <- c("", "a", "") > x list(a = 1, 2) > names(x) <- c("", "", "") > x list(1, 2) > names(x) NULL I think the behaviour should be consistent between lists and call objects; if the behaviour for calls followed the behaviour for lists, it would let me save a line (if (is.null(names(x)) .... ) in the margins function. Even though they print the same way, names of c("", "", "") are different from no names at all. Duncan Murdoch ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-devel