On Wed, Feb 08, 2012 at 03:56:12PM -0500, Sam Steingold wrote: > To be clear, I can do that with nested for loops: > > v <- c("A1B2","A3C4","B5","C6A7B8") > l <- strsplit(gsub("(.{2})","\\1,",v),",") > d <- data.frame(A=vector(length=4,mode="integer"), > B=vector(length=4,mode="integer"), > C=vector(length=4,mode="integer")) > > for (i in 1:length(l)) { > l1 <- l[[i]] > for (j in 1:length(l1)) { > d[[substring(l1[j],1,1)]][i] <- as.numeric(substring(l1[j],2,2)) > } > }
Hi. The inner loop may be vectorized. d <- as.matrix(d) for (i in 1:length(l)) { l1 <- l[[i]] d[i, substring(l1,1,1)] <- as.numeric(substring(l1,2,2)) } A B C 1 1 2 0 2 3 0 4 3 0 5 0 4 7 8 6 If the number of rows of d is large, a matrix is probably more efficient. Hope this helps. Petr Savicky. ______________________________________________ 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.