x <- c(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.47,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.47,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)

mat <- matrix(x, nc=11, byrow=T); rm(x)
colnames(mat) <- c("index", "no", "value", LETTERS[1:8])


apply( mat[ , 4:11], 1, function(x) paste( names(x)[ which(x==1) ],
collapse=" " ))
[1] "A B"       "A C"       "A E H"     "A F G"   "B C D"   "C E G H"
[7] "D E F H"   "A C D E H" "A C D F G"

mat[ , 4:11] uses data from 4th to 11 th columns. 

names(x)[ which(x==1) ] finds the names of all elements with values 1 in
the rows

paste( ..., collapse=" ") collapses all the names of the elements with
value 1

apply( mat[ , 4:9], 1, ... ) applies the above process for every row

Regards, Adai


-----Forwarded Message-----
From: Henrik Andersson <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: [R] Create a vector of  combinations based on a table column names
Date: Tue, 23 Nov 2004 16:40:59 +0100

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
-- 
Adaikalavan Ramasamy                    [EMAIL PROTECTED]
Centre for Statistics in Medicine       http://www.ihs.ox.ac.uk/csm/
Cancer Research UK                      Tel : 01865 226 677
Old Road Campus, Headington, Oxford     Fax : 01865 226 962

______________________________________________
[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

Reply via email to