looping through data frames in a workspace
lucy b wrote:
I have a workspace containing only data frame objects. I would like to
loop though each one and clean-up text columns in them. How can I have
R loop through the list? I have tried to find an answer in R help but
the closest solution I can find is to make a static list of data
frames, as illustrated in this recent post:
...
I would like to avoid having to type-out a very long list over and
over again. I have tried every variation I could think of similar to:
for(df in list(noquote(ls()))) {
do stuff with df
}
If you name your data frames consistently (e.g. df1, df2, df3 etc.), then
you can access them using mget:
df1 <- data.frame(a=runif(10), b=letters[1:10])
df2 <- data.frame(c=rnorm(5))
df3 <- data.frame(11:20)
dataframes <- mget(paste("df", 1:3, sep=""), envir=.GlobalEnv)
Alternatively, if you want every dataframe in your workspace, try:
vars <- ls()
nvars <- length(vars)
dataframes <-list()
j <- 1
for(i in 1:nvars)
{
if(class(get(vars[i]))=="data.frame")
{
dataframes[[j]] <- get(vars[i])
names(dataframes)[j] <- vars[i]
j <- j+1
}
}
Regards,
Richie.
Mathematical Sciences Unit
HSL
View this message in context: http://www.nabble.com/looping-through-data-frames-in-a-workspace-tp15815971p15823720.html Sent from the R help mailing list archive at Nabble.com.