Hi, Try:
dat1 <- read.table(text="a b c d e 1 2 3 4 5 10 9 8 7 6",sep="",header=TRUE) Names1<- read.table(text="Original New e ee b bb a aa c cc d dd",sep="",header=TRUE,stringsAsFactors=FALSE) It is better to dput() your dataset. For example: dput(Names1) structure(list(Original = c("e", "b", "a", "c", "d"), New = c("ee", "bb", "aa", "cc", "dd")), .Names = c("Original", "New"), class = "data.frame", row.names = c(NA, -5L)) names(dat1) <- Names1[,2][match(names(dat1), Names1[,1])] ## dat1 # aa bb cc dd ee #1 1 2 3 4 5 #2 10 9 8 7 6 A.K. On Thursday, November 21, 2013 1:45 PM, Nitisha jha <nitisha...@gmail.com> wrote: Hi, Thanks. I used as.character() and got the right strings. Btw, I have lots of handicaps regarding R. I have to rename the columns(I have 22 columns here). I have the new names along with the original names in another dataset. Right now, I am going hardcoding all the 19 name changes(tedious and not optimum). 1st 3 names remain the same. I will give u a sample dataset. Let me know if there is any easy way of doing this. Pardon the displaced column labels. Original dataset. a b c d e 1 2 3 4 5 10 9 8 7 6 Dataset for name change Original New e ee b bb a aa c cc d dd I want my final dataset to be like this: aa bb cc dd ee 1 2 3 4 5 10 9 8 7 6 Could u tell me an optimal way to do it. My method is tedious and not good. Also, is there a way to import .xls without perl (windows)? Thanks for being patient. :) ______________________________________________ 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.