Ben Shapiro <bshapiro-lists-R <at> getdown.org> writes: : : HI Folks, : : I'm trying to create a list with named elements. Only, I don't know the names of the elements a priori (they : come from the data being calculated). Currently, my approach is to create an environment, then assign : things to the environement, then as.list the environment to get a list. : : Running the code gives, for example: : > e2 <- new.env(FALSE, NULL) : > assign("dude", 123, env=e2) : > assign("chick", 456, env=e2) : > as.list(e2) : Error in as.vector(x, "list") : cannot coerce to vector : : Is this the best way to make a list like this? : : Thanks, : Ben
If you need to add them one at a time then John Fox has already provided an answer. If you want to create it all at once and you have the contents in a list and the names in a vector like this: nams <- letters[1:3] contents <- list(1:3, 4:5, 6:9) # then here are two ways: # 1 mapply("{", nams, contents, SIMPLIFY = FALSE) # 2 names(contents) <- nams contents # Actually in your example the elements are all homogeneous so # you could alternately use a vector to hold the results: # 1a contents <- c(1, 2, 3) mapply("{", nams, contents) # 2a names(contents) <- nams contents ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html