[R] Create a vector of combinations based on a table column n ames

Liaw, Andy andy_liaw at merck.com
Tue Nov 23 17:52:03 CET 2004


Here's another way:

> dat <- read.table("clipboard", header=TRUE)[,-(1:3)]
> dat
  A B C D E F G H
1 1 1 0 0 0 0 0 0
2 1 0 1 0 0 0 0 0
3 1 0 0 0 1 0 0 1
4 1 0 0 0 0 1 1 0
5 0 1 1 1 0 0 0 0
6 0 0 1 0 1 0 1 1
7 0 0 0 1 1 1 0 1
8 1 0 1 1 1 0 0 1
9 1 0 1 1 0 1 1 0
> apply(dat > 0, 1, function(idx) paste(names(dat)[idx], collapse=" "))
          1           2           3           4           5           6
7 
      "A B"       "A C"     "A E H"     "A F G"     "B C D"   "C E G H"   "D
E F H" 
          8           9 
"A C D E H" "A C D F G" 

HTH,
Andy

> From: Eric Lecoutre
> 
> Hi,
> 
> Here is something that does the job (though I am sure other 
> people will 
> find smarter solutions!):
> 
> 
>  > samp=matrix(sample(0:1,size=100,replace=TRUE 
> ,prob=c(0.8,0.2)),ncol=10)
>  > colnames(samp)<-LETTERS[1:10]
>  > unlist(lapply(apply(samp,1,FUN=function(vec) 
> colnames(samp)[as.logical(vec)] ),paste,collapse=" "))
>   [1] "A F J"   "D I"     "B I"     "A"       "G H"     "B C E H" "E 
> H"     "B C E G" "E"
> [10] "B C E I"
> 
> HTH,
> 
> Eric
> 
> 
> At 16:40 23/11/2004, Henrik Andersson wrote:
> >I want to create a character vector based on the table 
> (shortened for 
> >display) below:
> >Where there are ones in the matrix I want the column name to 
> appear and 
> >where there are zeros nothing, which would make the vector in this 
> >shortened case:
> >
> >combinations <- ("A B","A C","A E H","A F G","B C D","E G 
> H",A C D E H","A 
> >C D F G")
> >
> >     no  value  A  B  C  D  E  F  G   H
> >1    2  3.095  1  1  0  0  0  0  0   0
> >2    2  1.687  1  0  1  0  0  0  0   0
> >46   3  3.470  1  0  0  0  1  0  0   1
> >47   3  1.563  1  0  0  0  0  1  1   0
> >50   3  6.234  0  1  1  1  0  0  0   0
> >148  4  3.663  0  0  1  0  1  0  1   1
> >151  4  3.470  0  0  0  1  1  1  0   1
> >177  5  5.411  1  0  1  1  1  0  0   1
> >178  5  6.829  1  0  1  1  0  1  1   0
> >
> >Question is how to make this not so manually?
> >
> >---------------------------------------------
> >Henrik Andersson
> >Netherlands Institute of Ecology -
> >Centre for Estuarine and Marine Ecology
> >P.O. Box 140
> >4400 AC Yerseke
> >Phone: +31 113 577473
> >h.andersson at nioo.knaw.nl
> >http://www.nioo.knaw.nl/ppages/handersson
> >
> >______________________________________________
> >R-help at 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
> 
> Eric Lecoutre
> 
> UCL /  Institut de Statistique
> Voie du Roman Pays, 20
> 1348 Louvain-la-Neuve
> Belgium
> 
> tel: (+32)(0)10473050
> lecoutre at stat.ucl.ac.be
> http://www.stat.ucl.ac.be/ISpersonnel/lecoutre
> 
> If the statistics are boring, then you've got the wrong 
> numbers. -Edward 
> Tufte
> 
> ______________________________________________
> R-help at 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
> 
>




More information about the R-help mailing list