There has to be a better (more readable) way, but this works...
> set.seed(323)
> foo.df <- data.frame(A = round(runif(5)), B = round(runif(5)), C =
round(runif(5)))
> foo.df
A B C
1 0 1 1
2 1 1 1
3 1 1 1
4 0 1 1
5 1 1 0
> names.list <- lapply( apply( foo.df, 1, function( x ) colnames(
foo.df )[ as.logical( x ) ] ), paste, collapse = ", " )
> names.vect <- unlist(names.list)
> foo.df
A B C
1 0 1 1
2 1 1 1
3 1 1 1
4 0 1 1
5 1 1 0
> names.vect
1 2 3 4 5
"B, C" "A, B, C" "A, B, C" "B, C" "A, B"
>
Those nested applies make my head hurt.
HTH, Andy
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Behalf Of Henrik Andersson
> Sent: Tuesday, November 23, 2004 10:41 AM
> To: [EMAIL PROTECTED]
> Subject: [R] Create a vector of combinations based on a table column
> names
>
>
> 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
> [EMAIL PROTECTED]
> http://www.nioo.knaw.nl/ppages/handersson
>
> ______________________________________________
> [EMAIL PROTECTED] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html