Peter,

I've inserted response inline below:

Cliff

Peter Dalgaard wrote:
Cliff Behrens wrote:
Peter,

OK...here is reproducible, self-contained code:

library(gregmisc)

Relying on a 3rd party package is not kosher either... Whatever did
list("NA"=2)  or l <- list(2); names(l) <- "NA" do to you?

I'm not sure what you mean by "3rd party?" I downloaded this package from the CRAN site where I get all others. I don't understand your question.
columnNames <- c("A","B","C","D","N","a","b","c")
namePerms<- permutations(length(columnNames),2,columnNames,repeats=TRUE)
nameList <- paste(namePerms[,1],namePerms[,2],sep="")
dataList <- lapply(1:length(nameList), function(level) {})
names(dataList)<- nameList ## The "NA" is interpreted that the name is missing for one list in dataList

If you inspect the contents of dataList, you will find the following showing that the name "NA" is treated differently:

Anyways....  As I thought:

Remember that NA is a reserved word. You get the same kind of reaction if you name an element "for" or "in". It denotes that you need to quote the name for indexing with $:

I thought that since all of the names in namesList were type char, there was no need to enclose these in quotation marks.
> names(l) <- "NA"
> l$NA
Error: unexpected numeric constant in "l$NA"
> l$`NA`
[1] 2
> l$"NA"
[1] 2
> l[["NA"]]
[1] 2
> names(l)
[1] "NA"

......

$Na
NULL

$`NA`
NULL

$Nb
NULL
.........
Peter Dalgaard wrote:
Cliff Behrens wrote:
I want to generate a list (called "dataList" below) where each of its levels is named. These names are assigned to nameList, which contains all possible permutations of size two taking letters from a larger alphabet, e.g., "aa",...,"Fd",..,"Z1",... One of these permutations is the character string "NA". It seems that when I try to name one of the dataList levels "NA", using names(dataList)<- nameList, the names() function assigns the missing character to the level. Is there someway to preserve "NA" as the name of a level in dataList? Here is the R code I have been using to do this.

namePerms<- permutations(ncol(coinMat),2,colnames(coinMat),repeats=TRUE)
nameList <- paste(namePerms[,1],namePerms[,2],sep="")
dataList <- lapply(1:length(nameList), function(level) {})
names(dataList)<- nameList ## The "NA" in nameList is interpreted so that the name "NA" is missing for one level in dataList

I am running R 2.4.1 in the Windows XP environment.

Thanks for any help that can be offerred.

Your example is not reproducible and self-contained. What is "permutations" and "coinMat"??

I bet it isn't minimal either.

It doesn't seem to be happening for me with a recent(!) version of R, but you could just be misinterpreting the backtick quoting.

-
   O__  ---- Peter Dalgaard             Ă˜ster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalga...@biostat.ku.dk) FAX: (+45) 35327907




______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to