[R] loops with assign() and get()

William Dunlap wdunlap at tibco.com
Sun Aug 10 00:32:38 CEST 2014


> I was able to create 102 distinct dataframes (DFs1, DFs2, DFs3, etc) using
> the assign() in a loop.

The first step to making things easier to do is to put those data.frames
into a list.  I'll call it DFS and your data.frames will now be DFs[[1]],
DFs[[2]], ..., DFs[[length(DFs)]].
    DFs <- lapply(paste0("DFs", 1:102), get)
In the future, I think it would be easier if you skipped the 'assign()'
and just put the data into a list from the start.

Now use lapply to process that list, creating a new list called 'df', where
df[[i]] is the result of processing DFs[[i]]:

df <- lapply(DFs, FUN=function(DFsi) {
                      # your code from the for loop you supplied
                      dfi=DFsi[1,]
                      dfi=dfi[,1:3]
                      names(dfi)=names(DFsi[c(1,4,5)])
                      dfi=rbind(dfi,DFsi[c(1,4,5)])
                      names(dfi)=c("UID","Date","Location")
                      dfi # return this to put in list that lapply is making
                  })

(You didn't supply sample data so I did not run this - there may be typos.)

Bill Dunlap
TIBCO Software
wdunlap tibco.com


On Sat, Aug 9, 2014 at 1:39 PM, Laura Villegas Ortiz <lvilleg at ncsu.edu> wrote:
> Dear all,
>
> I was able to create 102 distinct dataframes (DFs1, DFs2, DFs3, etc) using
> the assign() in a loop.
>
> Now, I would like to perform the following transformation for each one of
> these dataframes:
>
> df1=DFs1[1,]
> df1=df1[,1:3]
> names(df1)=names(DFs1[c(1,4,5)])
> df1=rbind(df1,DFs1[c(1,4,5)])
> names(df1)=c("UID","Date","Location")
>
> something like this:
>
> for (i in 1 : nrow(unique)){
>
> dfi=DFsi[1,]
> dfi=dfi[,1:3]
> names(dfi)=names(DFsi[c(1,4,5)])
> dfi=rbind(dfi,DFsi[c(1,4,5)])
> names(dfi)=c("UID","Date","Location")
>
> }
>
> I thought it could be straightforward but has proven the opposite
>
> Many thanks
>
> Laura
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.



More information about the R-help mailing list