Hi Jorge, I think this will be much more useful when you have triplicates or more. dat1<-read.table(text=" Reference_Position Reference_Allele Variant_Allele Variant_Frequency AAC_Variant 16 G A 91.833811 Val6Met,Met 52 G A 93.969466 Val18Ile 64 G T 94.155381 Val22Phe 73 C A 94.293478 Gln25Lys 131 G A 94.268168 Arg44Lys 64 G A 92.947658 Ser48Asn 72 G A 85.9468 Gln25Phe 62 C A 92.6583 Arg42Lys 72 G T 96.86688 Ser48Lys 72 G C 94.8488 Arg42ln ",sep="",header=TRUE,stringsAsFactors=FALSE) dat2<-dat1[,c(1,4)][duplicated(dat1$Reference_Position)|duplicated(dat1$Reference_Position,fromLast=TRUE),] dat3<-do.call(rbind,lapply(split(dat2,dat2$Reference_Position),function(x) prod(x[,2])/100)) dat4<-data.frame(Reference_Position=row.names(dat3),Value=dat3) row.names(dat4)<-1:nrow(dat4) merge(dat1[,c(1,4)],dat4,by="Reference_Position",all=TRUE) # Reference_Position Variant_Frequency Value #1 16 91.83381 NA #2 52 93.96947 NA #3 62 92.65830 NA #4 64 94.15538 87.51522 #5 64 92.94766 87.51522 #6 72 85.94680 7896.54044 #7 72 96.86688 7896.54044 #8 72 94.84880 7896.54044 #9 73 94.29348 NA #10 131 94.26817 NA
A.K. ----- Original Message ----- From: Jorge Dinis <jorgemdi...@gmail.com> To: arun <smartpink...@yahoo.com> Cc: Sent: Monday, October 29, 2012 1:17 PM Subject: Re: [R] Performing multiplication on duplicate values Thank you very much, I will give this a try! JD On Oct 29, 2012, at 12:15 PM, arun wrote: > Hi, > May be this helps: > dat1<-read.table(text=" > Reference_Position Reference_Allele Variant_Allele Variant_Frequency > AAC_Variant > 16 G A 91.833811 >Val6Met,Met > 52 G A 93.969466 >Val18Ile > 64 G T 94.155381 >Val22Phe > 73 C A 94.293478 >Gln25Lys > 131 G A 94.268168 >Arg44Lys > 64 G A 92.947658 >Ser48Asn > 72 G A 85.9468 >Gln25Phe > 62 C A 92.6583 >Arg42Lys > 72 G T 96.86688 >Ser48Lys > ",sep="",header=TRUE,stringsAsFactors=FALSE) > dat2<-dat1[,c(1,4)][duplicated(dat1$Reference_Position)|duplicated(dat1$Reference_Position,fromLast=TRUE),] > dat3<-do.call(rbind,lapply(split(dat2,dat2$Reference_Position),function(x) > (x[1,2]*x[2,2])/100)) > dat4<-data.frame(Reference_Position=row.names(dat3),Value=dat3) > row.names(dat4)<-1:nrow(dat4) > merge(dat1[,c(1,4)],dat4,by="Reference_Position",all=TRUE) > # Reference_Position Variant_Frequency Value > #1 16 91.83381 NA > #2 52 93.96947 NA > #3 62 92.65830 NA > #4 64 94.15538 87.51522 > #5 64 92.94766 87.51522 > #6 72 85.94680 83.25398 > #7 72 96.86688 83.25398 > #8 73 94.29348 NA > #9 131 94.26817 NA > > A.K. > > > > > ----- Original Message ----- > From: JDINIS <jorgemdi...@gmail.com> > To: r-help@r-project.org > Cc: > Sent: Monday, October 29, 2012 12:27 PM > Subject: [R] Performing multiplication on duplicate values > > Hello all, thank you for your help. The task I need to perform is difficult > to explain so I apologize a head of time for any confusion. > > I have a data frame with these colnames() Reference_Position, > Reference_Allele, Variant_Allele, Variant_Frequency, AAC_Variant. If a > value is duplicated in the "Reference_Position" column, I would both of > their "Variant_Frequency" values multiplied and inserted into a new data > frame. > > example below: reference position 64 is repeated, multiple 94.155381 by > 92.947658 and insert value into "Value". > > Because I do not know how to best explain this or phrase it into a logical > questions, here is a before and after. Also, if you could explain the code a > bit, that would be appreciated as well- teach and person to fish! > > > Before > >> dat > [Reference_Position] [Reference_Allele] [Variant_Allele] [Variant_Frequency] > [AAC_Variant] > 16 G A 91.833811 > Val6Met,Met > 52 G A 93.969466 > Val18Ile > 64 G T 94.155381 > Val22Phe > 73 C A 94.293478 > Gln25Lys > 131 G A 94.268168 > Arg44Lys > 64 G A 92.947658 > Ser48Asn > After > >> dat > [Reference_Position] [Variant_Frequency] [Value] > 16 91.833811 > NA > 52 93.969466 > NA > 64 94.155381 > 85.152215 > 73 94.293478 NA > 131 94.268168 NA > 64 92.947658 > 85.152215 > > > > > -- > View this message in context: > http://r.789695.n4.nabble.com/Performing-multiplication-on-duplicate-values-tp4647772.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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.