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.
Performing multiplication on duplicate values
2 messages · JDINIS, arun
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 <jorgemdinis at gmail.com> To: r-help at 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 at 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.