Dear R'sians,
Would really appreciate if you could suggest a more efficient way to order
the columns of a dataset. The column names of the dataset contain indices
separated by a period. Following are examples of my code and the dataset.
oC <- function(tg=x2) {
lth <- length(grep("T",names(tg)))
thix <- match(paste("T",seq(lth),sep=""),names(tg))
soi <- c(grep("O",names(tg),fixed=T),grep("S",names(tg),fixed=T))
oi <-
data.frame(t(data.frame(strsplit(names(tg)[soi],"\\."),stringsAsFactors=F)),stringsAsFactors=F)
names(oi) <- c("par","ix1","ix2");row.names(oi) <- NULL
oi$cnm <- sub("^\\s+((.*\\S)\\s+)?$", "\\2", paste("
",paste(oi$par,oi$ix1,oi$ix2," ",sep="."),sep=""))
oi1 <- oi[order(oi$par,as.integer(oi$ix1),as.integer(oi$ix2)),]
return(list(oi1=oi1,thix=thix))
}
x1 <- c("TABLE NO. 1: Gold" ,
" R T2 T1 O.4.1. O.3.1.
S.1.1. " ,
" 0 3.68000E+01 1.41000E+03 4.94000E+03 2.33000E+01
4.90000E+01",
" 43 3.77870E+01 2.46260E+03 4.44227E+03 2.31390E+01
4.84272E+01",
" -1 3.67870E+01 1.46260E+03 4.44227E+03 2.31390E+01
4.84271E+01")
x2 <- read.table(textConnection(x1),as.is=T,head=T,skip=1)
x3 <- oC(x2)
pcols <- c(names(x2)[x3$thix],x3$oi1$cnm)
x4 <- x2[,match(c(setdiff(names(x2),pcols),pcols),names(x2))]
Thanks a TON
Santosh
[[alternative HTML version deleted]]
______________________________________________
[email protected] 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.