I think people have misinterpreted the question. The OP wants local maxima from the series. The original series is frequencies, so your table is frequencies of frequencies. A solution can be derived by looking at signs of the first and second differences. But there may be a simpler way???? On Mon, Mar 16, 2020 at 10:24 AM Jim Lemon <drjimlemon at gmail.com> wrote:> > Hi Ding, > Translating this into R code: > > freq<-c(1,2,5,5,10,4,4,8,1,1,8,8,2,4,3,1,2,1,1,138,149,14,1,1) > > table(freq) > freq > 1 2 3 4 5 8 10 14 138 149 > 8 3 1 3 2 3 1 1 1 1 > > library(prettyR) > > Mode(freq) > [1] "1" > > You have a single modal value (1). If there were at most two ones, you > would have three values (2,4,8) that could be considered multiple > modes. What you seem to be doing is considering values that are not > separated by commas as modes. Perhaps this is a formatting problem > with your email. > > Jim > > On Mon, Mar 16, 2020 at 7:55 AM Yuan Chun Ding <ycding at coh.org> wrote: > > > > Hi R users, > > > > I want to find multiple modes (10, 8, 149) for the following vector. > > > > freq =1,2,5,5 10,4,4,8,1,1,8,8,2,4,3,1,2,1,1 138 149 14,1,1; > > > > any suggestion? > > > > Thank you, > > > > Ding > > > > ---------------------------------------------------------------------- > > ------------------------------------------------------------ > > -SECURITY/CONFIDENTIALITY WARNING- > > > > This message and any attachments are intended solely for the individual or entity to which they are addressed. This communication may contain information that is privileged, confidential, or exempt from disclosure under applicable law (e.g., personal health information, research data, financial information). Because this e-mail has been sent without encryption, individuals other than the intended recipient may be able to view the information, forward it to others or tamper with the information without the knowledge or consent of the sender. If you are not the intended recipient, or the employee or person responsible for delivering the message to the intended recipient, any dissemination, distribution or copying of the communication is strictly prohibited. If you received the communication in error, please notify the sender immediately by replying to this message and deleting the message and any accompanying files from your system. If, due to the security risks, you do not wish to r > ec > > eive further communications via e-mail, please reply to this message and inform the sender that you do not wish to receive further e-mail from the sender. (LCP301) > > ------------------------------------------------------------ > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > > 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 at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.
On 15/03/2020 6:42 p.m., Abby Spurdle wrote:> I think people have misinterpreted the question. > The OP wants local maxima from the series. > > The original series is frequencies, so your table is frequencies of frequencies. > > A solution can be derived by looking at signs of the first and second > differences. > But there may be a simpler way????Presumably this is a homework question. Your answer is perfect for one of those; more detail would be inappropriate. Duncan Murdoch> > On Mon, Mar 16, 2020 at 10:24 AM Jim Lemon <drjimlemon at gmail.com> wrote: >> >> Hi Ding, >> Translating this into R code: >> >> freq<-c(1,2,5,5,10,4,4,8,1,1,8,8,2,4,3,1,2,1,1,138,149,14,1,1) >>> table(freq) >> freq >> 1 2 3 4 5 8 10 14 138 149 >> 8 3 1 3 2 3 1 1 1 1 >>> library(prettyR) >>> Mode(freq) >> [1] "1" >> >> You have a single modal value (1). If there were at most two ones, you >> would have three values (2,4,8) that could be considered multiple >> modes. What you seem to be doing is considering values that are not >> separated by commas as modes. Perhaps this is a formatting problem >> with your email. >> >> Jim >> >> On Mon, Mar 16, 2020 at 7:55 AM Yuan Chun Ding <ycding at coh.org> wrote: >>> >>> Hi R users, >>> >>> I want to find multiple modes (10, 8, 149) for the following vector. >>> >>> freq =1,2,5,5 10,4,4,8,1,1,8,8,2,4,3,1,2,1,1 138 149 14,1,1; >>> >>> any suggestion? >>> >>> Thank you, >>> >>> Ding >>> >>> ---------------------------------------------------------------------- >>> ------------------------------------------------------------ >>> -SECURITY/CONFIDENTIALITY WARNING- >>> >>> This message and any attachments are intended solely for the individual or entity to which they are addressed. This communication may contain information that is privileged, confidential, or exempt from disclosure under applicable law (e.g., personal health information, research data, financial information). Because this e-mail has been sent without encryption, individuals other than the intended recipient may be able to view the information, forward it to others or tamper with the information without the knowledge or consent of the sender. If you are not the intended recipient, or the employee or person responsible for delivering the message to the intended recipient, any dissemination, distribution or copying of the communication is strictly prohibited. If you received the communication in error, please notify the sender immediately by replying to this message and deleting the message and any accompanying files from your system. If, due to the security risks, you do not wish to > r >> ec >>> eive further communications via e-mail, please reply to this message and inform the sender that you do not wish to receive further e-mail from the sender. (LCP301) >>> ------------------------------------------------------------ >>> >>> [[alternative HTML version deleted]] >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> 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 at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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 at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. >
sorry, this is not a homework question although I am working at home now due to COVID19 virus spreading in California. I tried to write a function to convert input data file.> tem4$Var1[1] 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 31> tem4$Freq[1] 1 2 5 5 10 4 4 8 1 1 8 8 2 4 3 1 2 1 1 138 149 14 1 1 I have 2000 markers, this is just one example marker, the var1 is a VNTR marker with alleles 1, 3, 4 etc, a multi-allele marker; the corresponding frequency for each allele is 1,2 5 etc. I want to convert this multi-allele marker to bi-allele markers by choosing a cutoff value; I would want the cut point to be allele 6 with frequency of 10, so allele 1 to allele 9 are considered as "short" allele, allele 10 to 31 as "long" allele; then sliding to next rsing frequency peak, allele 8 with frequency of 8, etc. maybe those rising peaks are not really multiple modes, but I want to do this type of data conversion. I want to first determine the number of modes, then convert input dat file into m different input files, then perform Cox regression analysis for each converted file. I am stuck in the step of find out m rise peaks. Thank you, Ding mode_format <-function (i) { tem <- as.data.frame(t(dat[i,,drop=F])) names(tem)<-"V1" tem <- tem[which(tem$V1!=""),,drop=F] tem2 <-separate(tem, col=V1, into=c("m1","m2"), convert = T) tem3 <-gather(tem2, marker, VNTR_repeats, m1:m2) tem4 <-as.data.frame(t(t(table(tem3$VNTR_repeats))))[,c(1,3)] tem4$Var1 <-as.numeric(as.character(tem4$Var1)) tem4 <-tem4[order(tem4$Var1),] m<- } ________________________________________ From: R-help [r-help-bounces at r-project.org] on behalf of Duncan Murdoch [murdoch.duncan at gmail.com] Sent: Sunday, March 15, 2020 4:20 PM To: Abby Spurdle; Jim Lemon Cc: r-help mailing list Subject: Re: [R] find multiple mode On 15/03/2020 6:42 p.m., Abby Spurdle wrote:> I think people have misinterpreted the question. > The OP wants local maxima from the series. > > The original series is frequencies, so your table is frequencies of frequencies. > > A solution can be derived by looking at signs of the first and second > differences. > But there may be a simpler way????Presumably this is a homework question. Your answer is perfect for one of those; more detail would be inappropriate. Duncan Murdoch> > On Mon, Mar 16, 2020 at 10:24 AM Jim Lemon <drjimlemon at gmail.com> wrote: >> >> Hi Ding, >> Translating this into R code: >> >> freq<-c(1,2,5,5,10,4,4,8,1,1,8,8,2,4,3,1,2,1,1,138,149,14,1,1) >>> table(freq) >> freq >> 1 2 3 4 5 8 10 14 138 149 >> 8 3 1 3 2 3 1 1 1 1 >>> library(prettyR) >>> Mode(freq) >> [1] "1" >> >> You have a single modal value (1). If there were at most two ones, you >> would have three values (2,4,8) that could be considered multiple >> modes. What you seem to be doing is considering values that are not >> separated by commas as modes. Perhaps this is a formatting problem >> with your email. >> >> Jim >> >> On Mon, Mar 16, 2020 at 7:55 AM Yuan Chun Ding <ycding at coh.org> wrote: >>> >>> Hi R users, >>> >>> I want to find multiple modes (10, 8, 149) for the following vector. >>> >>> freq =1,2,5,5 10,4,4,8,1,1,8,8,2,4,3,1,2,1,1 138 149 14,1,1; >>> >>> any suggestion? >>> >>> Thank you, >>> >>> Ding >>> >>> ---------------------------------------------------------------------- >>> ------------------------------------------------------------ >>> -SECURITY/CONFIDENTIALITY WARNING- >>> >>> This message and any attachments are intended solely for the individual or entity to which they are addressed. This communication may contain information that is privileged, confidential, or exempt from disclosure under applicable law (e.g., personal health information, research data, financial information). Because this e-mail has been sent without encryption, individuals other than the intended recipient may be able to view the information, forward it to others or tamper with the information without the knowledge or consent of the sender. If you are not the intended recipient, or the employee or person responsible for delivering the message to the intended recipient, any dissemination, distribution or copying of the communication is strictly prohibited. If you received the communication in error, please notify the sender immediately by replying to this message and deleting the message and any accompanying files from your system. If, due to the security risks, you do not wish to > r >> ec >>> eive further communications via e-mail, please reply to this message and inform the sender that you do not wish to receive further e-mail from the sender. (LCP301) >>> ------------------------------------------------------------ >>> >>> [[alternative HTML version deleted]] >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help__;!!Fou38LsQmgU!6iNw2AfLJV6eFkLuUgAwX9T0mSPCxKBHTLj-nyL_ZNTbTCkH5nA23q6f90tG$ >>> PLEASE do read the posting guide https://urldefense.com/v3/__http://www.R-project.org/posting-guide.html__;!!Fou38LsQmgU!6iNw2AfLJV6eFkLuUgAwX9T0mSPCxKBHTLj-nyL_ZNTbTCkH5nA23t1tDzUg$ >>> and provide commented, minimal, self-contained, reproducible code. >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help__;!!Fou38LsQmgU!6iNw2AfLJV6eFkLuUgAwX9T0mSPCxKBHTLj-nyL_ZNTbTCkH5nA23q6f90tG$ >> PLEASE do read the posting guide https://urldefense.com/v3/__http://www.R-project.org/posting-guide.html__;!!Fou38LsQmgU!6iNw2AfLJV6eFkLuUgAwX9T0mSPCxKBHTLj-nyL_ZNTbTCkH5nA23t1tDzUg$ >> and provide commented, minimal, self-contained, reproducible code. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help__;!!Fou38LsQmgU!6iNw2AfLJV6eFkLuUgAwX9T0mSPCxKBHTLj-nyL_ZNTbTCkH5nA23q6f90tG$ > PLEASE do read the posting guide https://urldefense.com/v3/__http://www.R-project.org/posting-guide.html__;!!Fou38LsQmgU!6iNw2AfLJV6eFkLuUgAwX9T0mSPCxKBHTLj-nyL_ZNTbTCkH5nA23t1tDzUg$ > and provide commented, minimal, self-contained, reproducible code. >______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help__;!!Fou38LsQmgU!6iNw2AfLJV6eFkLuUgAwX9T0mSPCxKBHTLj-nyL_ZNTbTCkH5nA23q6f90tG$ PLEASE do read the posting guide https://urldefense.com/v3/__http://www.R-project.org/posting-guide.html__;!!Fou38LsQmgU!6iNw2AfLJV6eFkLuUgAwX9T0mSPCxKBHTLj-nyL_ZNTbTCkH5nA23t1tDzUg$ and provide commented, minimal, self-contained, reproducible code.