Thank you very much, Bill !
It has taken my a while to figure out, but yes, what I need is a
list (the R object, list) of data frames and not a character vector
containing the names of the data frames.
Thank you very much. This works well and is getting me in the
direction I want to go.
Matthew
On 8/13/2014 7:40 PM, William Dunlap wrote:
Previously you asked
A second question: is this the best way to make a list
of data frames without having to manually type c(dataframe1, dataframe2, ...) ?
If you use 'c' there you will not get a list of data.frames - you will
get a list of all the columns in the data.frame you supplied. Use
'list' instead of 'c' if you are taking that route.
The *apply functions are helpful here. To make list of all
data.frames in an environment you can use the following function,
which takes the environment to search as an argument.
f <- function(envir = globalenv()) {
tmp <- eapply(envir,
all.names=TRUE,
FUN=function(obj) if (is.data.frame(obj))
obj else NULL)
# remove NULL's now
tmp[!vapply(tmp, is.null, TRUE)]
}
Use is as
allDataFrames <- f(globalenv()) # or just f()
Bill Dunlap
TIBCO Software
wdunlap tibco.com
On Wed, Aug 13, 2014 at 3:49 PM, Matthew
<mccormack at molbio.mgh.harvard.edu> wrote:
Hi Richard,
Thank you very much for your reply and your code.
Your code is doing just what I asked for, but does not seem to be what I
need.
I will need to review some basic R before I can continue.
I am trying to list data frames in order to bind them into 1 single data
frame with something like: dplyr::rbind_all(list of data frames), but when I
try dplyr::rbind_all(lsDataFrame(ls())), I get the error: object at index 1
not a data.frame. So, I am going to have to learn some more about lists in R
before proceding.
Thank you for your help and code.
Matthew
Matthew
On 8/13/2014 3:12 PM, Richard M. Heiberger wrote:
I would do something like this
lsDataFrame <- function(xx=ls()) xx[sapply(xx, function(x)
is.data.frame(get(x)))]
ls("package:datasets")
lsDataFrame(ls("package:datasets"))
On Wed, Aug 13, 2014 at 2:56 PM, Matthew
<mccormack at molbio.mgh.harvard.edu> wrote:
Hi everyone,
I would like the find which objects are data frames in all the
objects I
have created ( in other words in what you get when you type: ls() ),
then I
would like to make a list of these data frames.
Explained in other words; after typing ls(), you get the names of
objects.
Which objects are data frames ? How to then make a list of these data
frames.
A second question: is this the best way to make a list of data frames
without having to manually type c(dataframe1, dataframe2, ...) ?
Matthew
______________________________________________ R-help at 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 at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guidehttp://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.