Hi, On Mon, Jan 25, 2010 at 5:39 PM, Lisa <lisa...@gmail.com> wrote: > > Dear all, > > I have a dataset that looks like this: > > x <- read.table(textConnection("col1 col2 > 3 1 > 2 2 > 4 7 > 8 6 > 5 10"), header=TRUE) > > I want to rewrite it as below: > > var1 var2 var3 var4 var5 var6 var7 var8 var9 var10 > 1 0 1 0 0 0 0 0 0 0 > 0 2 0 0 0 0 0 0 0 0 > 0 0 0 1 0 0 1 0 0 0 > 0 0 0 0 0 1 0 1 0 0 > 0 0 0 0 1 0 0 0 0 1 > > Can anybody please help how to get this done? Your help would be greatly > appreciated.
I was trying to do it w/o for loops, but I can't figure out a way to do so: R> bounds <- range(x) R> m <- matrix(0, nrow=nrow(x), ncol=bounds[2]) R> colnames(m) <- paste('var', seq(bounds[2]), sep="") ## Ugly nested for-loop one-liner below R> for (i in 1:nrow(x)) for (j in 1:ncol(x)) m[i,x[i,j]] <- m[i,x[i,j]] + 1 R> m var1 var2 var3 var4 var5 var6 var7 var8 var9 var10 [1,] 1 0 1 0 0 0 0 0 0 0 [2,] 0 2 0 0 0 0 0 0 0 0 [3,] 0 0 0 1 0 0 1 0 0 0 [4,] 0 0 0 0 0 1 0 1 0 0 [5,] 0 0 0 0 1 0 0 0 0 1 -steve -- Steve Lianoglou Graduate Student: Computational Systems Biology | Memorial Sloan-Kettering Cancer Center | Weill Medical College of Cornell University Contact Info: http://cbio.mskcc.org/~lianos/contact ______________________________________________ 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.