Problem assigning "NA" as a level name in a list
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?
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 $: > 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.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
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.dalgaard at biostat.ku.dk) FAX: (+45) 35327907