Hi, Try: df.1 <- read.table(text="Name network speed Atlanta_Ga. LTE. 10 Hartford_CT. HSPA. 4 Seattle_WA. LTE. 12",sep="",header=TRUE,stringsAsFactors=FALSE)
df.1cleaned <- within(df.1,{ state <-gsub(".*\\_(.*)\\.$","\\1",Name);speed <- speed*1000}) subset(df.1cleaned,network=="HSPA.") #check your number in speed column # Name network speed state #2 Hartford_CT. HSPA. 4000 CT You could use ?lapply() for multiple dataframes df.2 <- df.1 res <- lapply(list(df.1,df.2),function(x) {x1 <- within(x,{state <- gsub(".*\\_(.*)\\.$","\\1",Name); speed <- speed*1000});subset(x1,network=="HSPA.")}) names(res) <- paste0(c("df.1","df.2"),"cleaned") res$df.2cleaned A.K. On Saturday, January 18, 2014 1:39 AM, Vijay <vijaychowdh...@gmail.com> wrote: I have three data frames df.1, df.2 and df.3. All have the same structure I.e here is df.1 Name network speed Atlanta_Ga. LTE. 10 Hartford_CT. HSPA. 4 Seattle_WA. LTE. 12 I want to perform a couple of steps on each data frame and store the transformed dataframes as df.1cleaned, df.2cleaned etc...... Here are the steps to perform. 1.Create a new column named state, given by the last two letters of the name field 2. Only keep rows where network is HSPA 3. Multiple the speed column by 1000 So df.1cleaned would look like Name Network. Speed. State Hartford_CT. HSPA. 10000. CT Can someone help me come up with a loop or a function that loops through all dataframes and produces all three dataframes Thanks Vijay Sent from my iPad ______________________________________________ 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.