Here is another way: > x <- scan('/tempxx.txt', what='', sep='\n', blank.lines.skip=F) Read 7 items > x [1] "icsrvepf" "fpevrsci" "ics" "p" "" "f" "ic" > x <- strsplit(x, '') # break into single characters > template <- c(i=0, c=0, s=0, r=0, v=0, e=0, p=0, f=0) > mat <- lapply(x, function(.l){ + .result <- template # initialize the result + .result[.l] <- 1 + .result + }) > do.call('rbind', mat) i c s r v e p f [1,] 1 1 1 1 1 1 1 1 [2,] 1 1 1 1 1 1 1 1 [3,] 1 1 1 0 0 0 0 0 [4,] 0 0 0 0 0 0 1 0 [5,] 0 0 0 0 0 0 0 0 [6,] 0 0 0 0 0 0 0 1 [7,] 1 1 0 0 0 0 0 0 >
On 1/26/06, Thomas Lumley <[EMAIL PROTECTED]> wrote: > > On Thu, 26 Jan 2006, Dale Steele wrote: > > The data looks like: > > --> > > icsrvepf > > fpevrsci > > ics > > p > > > > f > > ic > > <-- > > > > I would like to convert the about to a matrix of the form: > > > > i c s r v e p f > > 1 1 1 1 1 1 1 1 > > 1 1 1 1 1 1 1 1 > > 1 1 1 0 0 0 0 0 > > 0 0 0 0 0 0 1 0 > > 0 0 0 0 0 0 0 0 > > 0 0 0 0 0 0 0 1 > > 1 1 0 0 0 0 0 0 > > > > One possibility is to use grep() > > a > [1] "icsrvepf" "fpevrsci" "p" "" "f" "ic" > > grep("i",a) > [1] 1 2 6 > > so > > results<-matrix(0,nrow=length(a),ncol=length(behaviours)) > > colnames(results)<-behaviours > > for(b in behaviours) results[grep(b,a),b]<-1 > > results > i c s r v e p f > [1,] 1 1 1 1 1 1 1 1 > [2,] 1 1 1 1 1 1 1 1 > [3,] 0 0 0 0 0 0 1 0 > [4,] 0 0 0 0 0 0 0 0 > [5,] 0 0 0 0 0 0 0 1 > [6,] 1 1 0 0 0 0 0 0 > > > > -thomas > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > -- Jim Holtman Cincinnati, OH +1 513 247 0281 What the problem you are trying to solve? [[alternative HTML version deleted]] ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html