[R] help with combination problem
Petr Pikal
petr.pikal at precheza.cz
Thu Jun 8 09:21:43 CEST 2006
Hi
or you could try an approach of splitting original data frames and
using for cycle
> df<-matrix(sample(1:15), 3,5)
> df<-data.frame(df)
> names(df)
> names(df)[c(1,3,4)]<-c("Y1","Y2","Y3")
> df
Y1 X2 Y2 Y3 X5
1 10 15 8 3 7
2 13 6 12 2 1
3 11 5 9 4 14
> df1<-df[,grep("Y",names(df))]
> df1
Y1 Y2 Y3
1 10 8 3
2 13 12 2
3 11 9 4
> df2<-df[,-grep("Y",names(df))]
> df2
X2 X5
1 15 7
2 6 1
3 5 14
> for(i in 1:3) print(df1[,i]-df2)
X2 X5
1 -5 3
2 7 12
3 6 -3
X2 X5
1 -7 1
2 6 11
3 4 -5
X2 X5
1 -12 -4
2 -4 1
3 -1 -10
and merge resulting data frames together preferably in the cycle.
HTH
Petr
On 8 Jun 2006 at 7:50, David Hugh-Jones wrote:
Date sent: Thu, 8 Jun 2006 07:50:19 +0100
From: "David Hugh-Jones" <davidhughjones at gmail.com>
To: "Srinivas Iyyer" <srini_iyyer_bio at yahoo.com>
Copies to: r-help at stat.math.ethz.ch
Subject: Re: [R] help with combination problem
> hi Srinivas
>
> I'm not sure I understand: your example result has 10-9 for mu1 but 1
> for mu2, which is not equal to 11-9. I will assume you just got the
> numbers wrong. (Also J100 should be J1, no?)
>
> I am also wondering why you want what you say. It doesn't seem very
> sensible to mix the results from two data frames like this.
>
> The simplest thing is probably to do the two data frames separately,
> then intermix the rows. You can do this with for loops:
>
>
> for (col1 in paste("T", 1:14, sep="")) {
> for (col2 in paste("N", 1:16, sep="")) result[[paste(col1, "-",
> col2, sep="")]] = df1[[col1]] - df1[[col2]] }
>
> Now repeat for data frame 2 with another data frame, e.g. result2 Then
> intermix the rows from result and result2. I'll leave you to figure
> that bit out.
>
> David
>
>
>
> On 07/06/06, Srinivas Iyyer <srini_iyyer_bio at yahoo.com> wrote:
> > hello:
> >
> > I have 3 data.frame objects.
> >
> > First df object:
> > Of dim (149,31). Columns 2:31 are marked as T1..T14
> > and N1..N16.
> >
> > Name T1 T2 N1 T3 N2 N3 N4 T4
> > mu1 10 10 9 10 9 9 8 10
> > mu2 11 11 9 11 9 9 9 11
> > ...
> > muN 12 12 9 11 9 9 8 12
> >
> >
> >
> >
> > Second df object:
> > of Dim (50000,31). Columns 2:31 are maked as T1...T14
> > and N1..N16.
> >
> > Name T1 T2 N1 T3 N2 N3 N4 T4
> > J1 2 3 20 2 22 21 29 3
> > J2 4 1 20 3 20 21 22 4
> > J3 3 1 33 1 31 31 33 3
> > ...
> > JX 3 2 20 2 21 22 24 2
> >
> > The column samples are identical in both first and
> > second data frames.
> >
> > Third df object:
> > of Dim (200,2).
> >
> > V1 V2
> > mu1:J1 -11
> > mu1:J100 -10.4
> > mu2:J31 11.3
> > mu2:J2 10.4
> > ..... .....
> > muN:JX 34.5
> >
> >
> >
> > I want to create a combination of Ts and Ns. Where I
> > want to subtract value of T-N in all combinations(225
> > combinations). Such as
> > T1-N1,T1-N2,T1-N3,T1-N4,T1-N5.......T14-N16
> >
> > The rows should be the row pairs from 3rd dataframe.
> >
> >
> > The final resultant matrix should look like the
> > following:
> >
> >
> > T1-N1 T1-N2 T1-N3 T1-N4 T1-N5.......T14-N16
> > mu1 1(10-9) 1(10-9) 1 2 1 1
> > J100 -18(2-20) -20 -19 -27 -20 -29
> >
> > mu2 1 3 2 2 1 1
> > J2 -19 -21 -39 -31 -31 -28
> >
> >
> >
> > I am a beginner level in R. I apologise for asking
> > such a big question and subsequent help. I am unable
> > to go forward as I have no idea as to how to do this.
> > Could any one please help me.
> > Thanks
> > sri
> >
> > ______________________________________________
> > 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
> >
>
> ______________________________________________
> 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
Petr Pikal
petr.pikal at precheza.cz
More information about the R-help
mailing list