[R] Performing multiplication on duplicate values
arun
smartpink111 at yahoo.com
Mon Oct 29 18:23:22 CET 2012
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 <jorgemdinis at gmail.com>
To: arun <smartpink111 at 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 <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.
>
More information about the R-help
mailing list