> 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.