tags:

views:

96

answers:

2

Is there a method for moving a column from one position in a data.frame to the next - without typing an entirely new data.frame()

For example:

a <- b <- c <- d <- e <- f <- g <- 1:100
df <- data.frame(a,b,c,d,e,f,g)

Now let's say I wanted "g" in front of "a"

I could retype it, as

df <- data.frame(g,a,b,c,d,e,f)

But is there not a quicker way? (Imagine 1500+ columns)

+7  A: 

Here is one way to do it:

> col_idx <- grep("g", names(df))
> df <- df[, c(col_idx, (1:ncol(df))[-col_idx])]
> names(df)
[1] "g" "a" "b" "c" "d" "e" "f"
rcs
Thanks RCS, this works wonderfully.
Brandon Bertelsen
+5  A: 
df <- subset(df, select=c(g,a:f))
Ken Williams
Thank you Ken, this solution is also useful.
Brandon Bertelsen