[R] data manipulation/subsetting and relation matrix
Juliet Hannah
juliet.hannah at gmail.com
Tue Dec 8 02:38:11 CET 2009
Hi List,
Here is some example data.
myDat <- read.table(textConnection("group id
1 101
1 201
1 301
2 401
2 501
2 601
3 701
3 801
3 901"),header=TRUE)
closeAllConnections()
corr_mat <-read.table(textConnection("1 1 .5 0 0 0 0 0 0 0
2 .5 1 0 0 0 0 0 0 0
3 0 0 1.0 0 0 0 0 0 0
4 0 0 0 1 .5 .5 0 0 0
5 0 0 0 .5 1 .5 0 0 0
6 0 0 0 .5 .5 1 0 0 0
7 0 0 0 0 0 0 1 0 0
8 0 0 0 0 0 0 0 1 .5
9 0 0 0 0 0 0 0 .5 1"),header=FALSE)
closeAllConnections()
corr_mat <- corr_mat[,-1]
colnames(corr_mat) <- myDat$id
rownames(corr_mat) <- myDat$id
I need to subset this data such that observations within a group are not
related, which is indicated by a 0 in corr_mat.
For example, within group 1, 101 and 201 are related, so one of these
has to be selected, say
101. 301 is not related to 101 or 201, so the final set for group 1
consists of 101 and 301. There will always be at least 2 members in
each group. I need to carry this task on all groups.
One possible final data set looks like:
group id
1 1 101
3 1 301
4 2 401
7 3 701
8 3 801
Any suggestions? Thanks!
Juliet
More information about the R-help
mailing list