You could do something like: k <- dim(repo.dat)[2] odd <- seq(from=1,to=k,by=2) even <- seq(from=2,to=k,by=2) even<-c(1,even) df1 <- repo.dat[,odd) colnames(df1) <- paste("V",odd,sep="") df2 <- repo.dat[,even) colnames(df2) <- paste("V",even,sep="")
--- On Mon, 23/6/08, Gundala Viswanath <[EMAIL PROTECTED]> wrote: > From: Gundala Viswanath <[EMAIL PROTECTED]> > Subject: [R] Columnwise Alternate Subsetting of a Data Frame > To: [EMAIL PROTECTED] > Received: Monday, 23 June, 2008, 1:03 PM > Hi, > > Given this data frame: > > > print(repo.dat) > V1 V2 V3 > V4 > V5 .... (can be more) > 1 1007_s_at DDR1 2865.1 2901.3 1978.3 300.2 > 2 1053_at RFC2 103.6 81.6 108.0 > 101.3 > > I want to split them into two data frames yielding: > > V1 V2 V3 > ... etc > 1 1007_s_at DDR1 2865.1 1978.3 > 2 1053_at RFC2 103.6 108.0 > > (V2 and V3 is obtain from V2 and V4 of original repo.dat) > > and > > V1 V2 > V3 ...etc > 1 1007_s_at DDR1 2901.3 300.2 > 2 1053_at RFC2 81.6 101.3 > > > (V2 and V3 is obtain from V3 and V5 of original repo.dat) > > In principle what we desire to do is to: > 1. Given original data frame with V1, V2, V3, V4.... > 2. Split the data frame into two based on V2,V4,V6 ... > (even) and V3, > V5, V7 ..(odd) in the original data frame > 3. Meanwhile keep row names and V1 in two newly formed data > frames. > > Is there a compact way to do it? > > - Gundala Viswanath > Jakarta - Indonesia > > ______________________________________________ > 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. ______________________________________________ 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.