Hi, May be this helps you in getting started.
set.seed(29) df1<- as.data.frame(matrix(sample(1:20,5*10,replace=TRUE),5,10)) cond<- c("V1eq2","V8eq2","V6eq4orV8eq7") fun1<- function(df,prefix,cond){ lst1<- list(df[df$V1==2,],df[df$V8==2,],df[df$V6==4|df$V8==7,]) for(i in seq_along(cond)){ assign(paste(prefix,cond[i],sep="_"),lst1[[i]],envir=.GlobalEnv) print(paste(prefix,cond[i],sep="_"))} } fun1(df1,"frame1",cond) #[1] "frame1_V1eq2" #[1] "frame1_V8eq2" #[1] "frame1_V6eq4orV8eq7" frame1_V1eq2 # V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 #1 2 2 20 17 14 8 8 2 13 18 frame1_V8eq2 # V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 #1 2 2 20 17 14 8 8 2 13 18 #5 12 5 4 8 13 4 10 2 2 13 frame1_V6eq4orV8eq7 # V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 #3 3 18 7 8 20 18 2 7 20 15 #4 7 3 13 18 20 14 15 7 14 12 #5 12 5 4 8 13 4 10 2 2 13 A.K. ----- Original Message ----- From: Matt Strauser <synte...@gmail.com> To: r-help@r-project.org Cc: Sent: Tuesday, September 3, 2013 10:19 AM Subject: [R] How to assign names to global data frames created in a function I have several data frames containing similar data. I'd like to pass these data frames to a function for processing. The function would create newly named "global" data frames containing the processed data. I cannot figure out how to assign names to the data frames in Step 1 or Step 2 in the following example: # sample function in pseudo code processdf <- function(df, prefix) { # df - data frame containing data for processing # prefix - string to become the first part of the names of the resulting data frames # Step 1 - processs df into several subsets df1 <<- subset(df, df$cond1 & df$cond2 & ...) df2 <<- subset(df, df$cond3 & df$cond4 & ...) df3 <<- subset(df, df$cond5 & df$cond6 & ...) # and so on....for many more steps with resulting data frames # Step 2 - rename the resulting global data frames rename "df1" to prefix + "cond1cond2" rename "df2" to prefix + "cond3cond4" rename "df3" to prefix + "cond5cond6" # and so on for the remaining data frames } Example using data frames: frame1 and frame2: processdf(frame1, "frame1") # produces these data frames: frame1cond1cond2 frame1cond3cond4 frame1cond5cond6 processdf(frame2, "frame2") # produces these data frames: frame2cond1cond2 frame2cond3cond4 frame2cond5cond6 Thank you for your thoughts, Matt [[alternative HTML version deleted]] ______________________________________________ R-help@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@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.