[R] Code driven data.frame naming question.
Jeff Newmiller
jdnewm|| @end|ng |rom dcn@d@v|@@c@@u@
Tue Apr 16 01:55:17 CEST 2019
While the assign function is in fact the function you are looking for, I would strongly advise that you cease and desist in this endeavour and instead make a list of data frames rather than littering your global environment with many individual data frames.
If you have a vector of names of files you can use lapply to read them all into a list of data frames. You can then use the filenames as "names" with which to look up the appropriate data. E.g.
dtadir <- "datadir"
myfiles <- list.files( dtadir )
dtalist <- lapply( myfiles, function(fn) {
read.csv( file.path( dtadir, fn ), stringsAsFactors=FALSE )
}
names( dtalist ) <- myfiles
str(dtalist$file001.csv)
str(dtalist[[ "file001.csv" ]])
str( dtalist[[ 1 ]] )
If the filenames have unusual characters in them then you may have to use back-tick quotes when using the dollar-sign operator.
On April 15, 2019 8:50:44 AM PDT, "Fieck, Joe" <Joe.Fieck using Teradata.com> wrote:
>Hello R list. I'm very new. I have what I hope is a simple question
>that I have not been able to find a good solution for.
>If this is common and clutters anyone's inbox my most sincere apologies
>in advance...
>
>I am trying to use an argument from a function in the name of a
>data.frame. But I seem to only be able to reference the arguments from
>the right hand side of the <- .
>
>So something like this. I would just want the function below to create
>a new data.frame named "myDataSet".
>Done on its own like "myDataSet <- data.frame()"
>
>myFunction <- function(x){ # suppose x is just a collection with
>one value with is the name I want the data.frame create as..
>c("myDataSet") for example
> name(x) <- data.frame()
>}
>
>But this of course doesn't work because I have not figured out how to
>reference the function argument from the left hand side of the <- .
>I have read about the "assign" function but from what I can tell
>(granted I'm new to R) the assign function works on the variable names
>not data.frame names which is what I need.
>
>Ultimately what I'm trying accomplish to send a list of character
>strings then iterate it and create multiple new data.frames each having
>the name of one of the elements of the list passed to the function.
>
>If there is even a better article out on the web that I'm obviously
>missing please orient me. I have struck out so far but I know I may
>not be searching correctly either.
>Any help at all would be much appreciated...
>______________________________________________
>R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>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.
--
Sent from my phone. Please excuse my brevity.
More information about the R-help
mailing list