How about like this:
t1 - data.frame(row.names=c('c1','c2','c3','c4'), mk1=c(1,1,0,0),
mk2=c(0,0,0,1), mk3=c(1,1,1,1), mk4=c(0,0,0,0), mk5=c(0,0,0,1), S=c(4,5,3,2))
t1
mk1 mk2 mk3 mk4 mk5 S
c1 1 0 1 0 0 4
c2 1 0 1 0 0 5
c3 0 0 1 0 0 3
c4 0 1 1 0 1 2
apply(combn(1:5, 2), 2, function(x) t1[,c(x[1], 6, x[2])])
[[1]]
mk1 S mk2
c1 1 4 0
c2 1 5 0
c3 0 3 0
c4 0 2 1
... ...
On Wed, Jun 10, 2009 at 1:10 PM, Scott Hermannsherm...@bses.org.au wrote:
Dear all,
I imagine that this is a trival question, but it has perplexed for most of
the day. Any help would be greatly appreciated.
Below is an example of what I'm trying to do.
Essentially I want to produce all unique 1 x 1 combinations of certain
columns from a dataframe, and join these to other columns from the same
dataframe. I'm having problems with the nested loop as I can only output
data from the last cycle of the loop. I realise that the problem is with
the st1[[i]] but I'm not sure how to define it differently.
##I want to make a list file of all 1x1 combinations of mk columns, and add
clone and S to these combinations.
clone-c(c1,c2,c3,c4)
mk1-c(1,1,0,0)
mk2-c(0,0,0,1)
mk3-c(1,1,1,1)
mk4-c(0,0,0,0)
mk5-c(0,0,0,1)
S-c(4,5,3,2)
t1-as.data.frame(cbind(clone,mk1,mk2,mk3,mk4, mk5,S))
row.names(t1)-t1$clone
t1-t1[,-1]
t1
###A nested loop. I'm trying to get all combinations of columns 1:5 and join
each of them with column 7.
st1 - list()
for(i in 1:4) {
for(j in (i+1):5){
st1[[i]] - cbind(t1[,c(i,6)],t1[,j])
}
}
st1
Thanks for your help,
Scott
BSES Limited Disclaimer
This email and any files transmitted with it are confide...{{dropped:13}}
__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.