Feature request: names(someEnv) same as ls(someEnv)
Duncan Murdoch wrote:
On 10/15/2006 2:48 PM, Seth Falcon wrote:
Hi, I would be nice if names() returned the equivalent of ls() for environments.
Wouldn't that just confuse people into thinking that environments are vectors? Wouldn't it then be reasonable to assume that env[[which(names(env) == "foo")]] would be a synonym for env$foo?
absolutely not - environments can only be subscripted by name, not by logicals or integer subscripts - so I hope that most users would figure that one out
I don't see why this would be nice: why not just use ls()?
why? environments do get used, by many as vectors (well hash tables), modulo the restrictions on subscripting and the analogy is quite useful and should be encouraged IMHO. Robert
Duncan Murdoch
--- a/src/main/attrib.c
+++ b/src/main/attrib.c
@@ -687,6 +687,8 @@ SEXP attribute_hidden do_names(SEXP call
s = CAR(args);
if (isVector(s) || isList(s) || isLanguage(s))
return getAttrib(s, R_NamesSymbol);
+ if (isEnvironment(s))
+ return R_lsInternal(s, 0);
return R_NilValue;
}
+ seth
--
Seth Falcon | Computational Biology | Fred Hutchinson Cancer Research Center
http://bioconductor.org
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Robert Gentleman, PhD Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N, M2-B876 PO Box 19024 Seattle, Washington 98109-1024 206-667-7700 rgentlem at fhcrc.org