Dear all, I have several data frames for which I want to change the column names. Example data: data.1 <- data.frame(x1 = rnorm(5)) data.2 <- data.frame(x1 = rnorm(5)) . . What I want to achieve: names(data.1) <- "y1" names(data.1) <- "y1" . . Is it possible to achieve this with a loop or any of the apply-functions? Some (out of several...) unsuccessful attempts using for-loops instead: for(i in 1:2) names(get(paste("data", i, sep = "."))) <- "y1" for(i in 1:2) assign(paste("data", i, sep="."), names(get(paste("natal", i, sep = "."))) <- "y1") Thanks in advance! / Henrik P?rn
Antonio, Fabio Di Narzo
2008-Apr-21 12:10 UTC
[R] change column names of several data frames
Henrik Parn <henrik.parn <at> bio.ntnu.no> writes:> > Dear all, > > I have several data frames for which I want to change the column names. > > Example data: > data.1 <- data.frame(x1 = rnorm(5)) > data.2 <- data.frame(x1 = rnorm(5))Use lists. I.e.: data <- list() data[[1]] <- data.frame(x1 = rnorm(5)) data[[2]] <- data.frame(x1 = rnorm(5))> . > . > > What I want to achieve: > names(data.1) <- "y1" > names(data.1) <- "y1" > . > . > > Is it possible to achieve this with a loop or any of the apply-functions? > > Some (out of several...) unsuccessful attempts using for-loops instead: > for(i in 1:2) > names(get(paste("data", i, sep = "."))) <- "y1" > > for(i in 1:2) > assign(paste("data", i, sep="."), names(get(paste("natal", i, sep > "."))) <- "y1") > > Thanks in advance! > > / Henrik P?rn > > ______________________________________________ > 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. > >-- Antonio, Fabio Di Narzo Ph.D. student at Department of Statistical Sciences University of Bologna, Italy
Hi Henrik, afaIcs this should work: for(v in sprintf("data.%d", 1:n)) { f = get(v) names(f) = whatever assign(v, f) } -- Best wishes Wolfgang ------------------------------------------------------------------ Wolfgang Huber EBI/EMBL Cambridge UK http://www.ebi.ac.uk/huber 21/04/2008 13:10 Antonio, Fabio Di Narzo a ?crit> Henrik Parn <henrik.parn <at> bio.ntnu.no> writes: > >> Dear all, >> >> I have several data frames for which I want to change the column names. >> >> Example data: >> data.1 <- data.frame(x1 = rnorm(5)) >> data.2 <- data.frame(x1 = rnorm(5)) > > Use lists. I.e.: > data <- list() > data[[1]] <- data.frame(x1 = rnorm(5)) > data[[2]] <- data.frame(x1 = rnorm(5)) > >> . >> . >> >> What I want to achieve: >> names(data.1) <- "y1" >> names(data.1) <- "y1" >> . >> . >> >> Is it possible to achieve this with a loop or any of the apply-functions? >> >> Some (out of several...) unsuccessful attempts using for-loops instead: >> for(i in 1:2) >> names(get(paste("data", i, sep = "."))) <- "y1" >> >> for(i in 1:2) >> assign(paste("data", i, sep="."), names(get(paste("natal", i, sep >> "."))) <- "y1") >> >> Thanks in advance! >> >> / Henrik P?rn >> >> ______________________________________________ >> 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. >> >> > > >
On Mon, 21 Apr 2008, Henrik Parn wrote:> Dear all, > > I have several data frames for which I want to change the column names. > > Example data: > data.1 <- data.frame(x1 = rnorm(5)) > data.2 <- data.frame(x1 = rnorm(5)) > . > . > > > What I want to achieve: > names(data.1) <- "y1" > names(data.1) <- "y1" > . > . > > > Is it possible to achieve this with a loop or any of the apply-functions? > > > Some (out of several...) unsuccessful attempts using for-loops instead: > for(i in 1:2) > names(get(paste("data", i, sep = "."))) <- "y1" > > for(i in 1:2) > assign(paste("data", i, sep="."), names(get(paste("natal", i, sep > "."))) <- "y1") >I think what you are missing is as.name. I think you need (untested) something like: names(as.name(paste("data",i,sep="."))) <- "y1" David Scott _________________________________________________________________ David Scott Department of Statistics, Tamaki Campus The University of Auckland, PB 92019 Auckland 1142, NEW ZEALAND Phone: +64 9 373 7599 ext 86830 Fax: +64 9 373 7000 Email: d.scott at auckland.ac.nz Graduate Officer, Department of Statistics Director of Consulting, Department of Statistics