Maybe you can just use a list? mylis <- list("x", c("y","z"))
element 1 is then mylis[[1]], which is x, and so forth. But it looks like you really need to 'map' some numbers to your list. You could use separate vector that keeps track of the index numbers: index <- c(0,1) and then map like this: > mylis[[which(index == 0)]] [1] "x" > mylis[[which(index == 1)]] [1] "y" "z" Is that what you want? Remko ------------------------------------------------- Remko Duursma Post-Doctoral Fellow Centre for Plants and the Environment University of Western Sydney Hawkesbury Campus Richmond NSW 2753 Dept of Biological Science Macquarie University North Ryde NSW 2109 Australia Mobile: +61 (0)422 096908 www.remkoduursma.com On Tue, Dec 1, 2009 at 2:36 PM, Peng Yu <pengyu...@gmail.com> wrote: > It seems that an vector or other non elemental data type can not be > assigned to an element in the data.frame. I'm wondering what is the > walk around. > >> li=data.frame(a=c(0,1), b=c('x','y')) >> li$b[[1]]= 'x' >> li$b[[2]]<- c('y','z') > Error in li$b[[2]] <- c("y", "z") : > more elements supplied than there are to replace > Execution halted > > In the following example, I want the number 1 maps to 'x', but I want > the number 2 maps to 'y' and 'z'. > > I could use the following code. But there is a redundancy in the > data.frame (the number 1 appears twice). I'm wondering what is the > best solution to this problem. > > li=data.frame(a=c(0,1,1), b=c('x','y','z')) > > ______________________________________________ > 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. > ______________________________________________ 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.