Thank you all,

All responses worked and focused on the use of combining the desired
column names (or numbers in Barry's solution) with variations of
'match(x, table)' and 'x %in% table' to generate the remaining column
names (numbers).

xxx <- data.frame(matrix(1:40, ncol=8))
names(xxx) <- letters[1:8]

# Common to all
ind <- c('b', 'd', 'h')
xxx[, c(ind, yyy)] # where c(ind, yyy) was:

# Jim Holtman
> c(ind, setdiff(names(xxx), ind))
[1] "b" "d" "h" "a" "c" "e" "f" "g"

# Dimitris Rizopoulos
> c(ind, names(xxx)[!names(xxx) %in% ind])
[1] "b" "d" "h" "a" "c" "e" "f" "g"

# Barry Rowlingson
> c(match(ind, names(xxx)), (1:dim(xxx)[2])[-match(ind, names(xxx))])
[1] 2 4 8 1 3 5 6 7

Thanks again, DaveT.
*************************************
Silviculture Data Analyst
Ontario Forest Research Institute
Ontario Ministry of Natural Resources
[EMAIL PROTECTED]
http://ofri.mnr.gov.on.ca
*************************************
----- Original Message ----- 
From: "Thompson, David (MNR)" <[EMAIL PROTECTED]>
To: <r-help@r-project.org>
Sent: Tuesday, February 12, 2008 6:19 PM
Subject: [R] Reorder data frame columns by negating list of names


> Hello,
>
> I would like to reorder columns in a data frame by their names as
> demonstrated below:
>
> Take this data frame:
> > xxx <- data.frame(matrix(1:40, ncol=8))
> > names(xxx) <- letters[1:8]
> > xxx
>   a  b  c  d  e  f  g  h
> 1 1  6 11 16 21 26 31 36
> 2 2  7 12 17 22 27 32 37
> 3 3  8 13 18 23 28 33 38
> 4 4  9 14 19 24 29 34 39
> 5 5 10 15 20 25 30 35 40
>
> and reorder the columns like this:
> > xxx[,c( c('b', 'd', 'h'), c('a', 'c', 'e', 'f', 'g') )]
>    b  d  h a  c  e  f  g
> 1  6 16 36 1 11 21 26 31
> 2  7 17 37 2 12 22 27 32
> 3  8 18 38 3 13 23 28 33
> 4  9 19 39 4 14 24 29 34
> 5 10 20 40 5 15 25 30 35
>
> where I only have to name the columns that I'm interested in moving 
> to
> the first few positions, something like:
> > xxx[,c( c('b', 'd', 'h'), -c('b', 'd', 'h') )]
> Error in -c("b", "d", "h") : invalid argument to unary operator
>
> Suggestions? and Thank you, DaveT.
> *************************************
> Silviculture Data Analyst
> Ontario Forest Research Institute
> Ontario Ministry of Natural Resources
> [EMAIL PROTECTED]
> http://ofri.mnr.gov.on.ca
>
> ______________________________________________
> 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.
> 


Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm

______________________________________________
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.

Reply via email to