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 <tlumley@u.washington.edu> 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]]


