many thanks, It WORKS. But
what If I want to add a condition that considered Measure_id , if it is '1' rank reverse the probability and if it is ' 2 ' rank is ordered like probability? Replying is highly appreciated Ragia ---------------------------------------- > From: petr.pi...@precheza.cz > To: ragi...@hotmail.com; r-help@r-project.org > Subject: RE: [R] groups Rank > Date: Mon, 7 Sep 2015 09:29:21 +0000 > > Hi > > OK, thanks for sending dput result. > > I am still not sure what exactly you want. Using ?ave you can get result of > x/max(x) > > dat$prob <- ave(dat$value, paste(dat$id, dat$i), FUN= function(x) x/max(x)) > > however in case max(x) is zero the result is NA > > You can change it to zero > > dat$prob[is.nan(dat$prob)] <- 0 > > and compute rank value by similar process. > > dat$rankvalue <- ave(dat$prob, paste(dat$id, dat$i), FUN = rank) > > But I am not sure if this is the desired result. > > Cheers > Petr > > >> -----Original Message----- >> From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Ragia >> Ibrahim >> Sent: Monday, September 07, 2015 10:12 AM >> To: Sarah Goslee; r-help@r-project.org >> Subject: Re: [R] groups Rank >> >> apology for re sending the Email, I changed the format to plain text as >> I have been advised the data is as follow >> >> thanks Sarah, >> I used pdut, and here is the data as written on R..I attached the dput >> result structure(list(Measure_id = c(1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, >> 3, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, >> 3, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3), i = c(5, 5, 5, 5, 5, 5, 5, 5, >> 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, >> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7), j = c(1, 1, 1, 1, 1, >> 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, >> 3, 3, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5), id = c(1, 2, >> 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, >> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, >> 11, 12), value = c(2, 1.5, 0, 0, 1, 0.5, 0, 0, 0, 0, 0.5, 2, 2, 1.5, 0, >> 1, 2, 0, 0.5, 1.44269504088896, 0, 0, 0, 0, 1, 1.5, 0, 0, 1, 0, 0, 0, >> 0, 0, 0, 0, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0)), .Names = >> c("Measure_id", "i", "j", "id", "value"), row.names = c(NA, 48L), class >> = "data.frame") >> >> the data is as follow : >> >> Measure_id i j id value >> 1 1 5 1 1 2.0 >> 2 1 5 2 1 2.0 >> 3 1 5 1 2 1.5 >> 4 1 5 2 2 1.5 >> 5 1 5 1 3 0.0 >> 6 1 5 2 3 0.0 >> 7 1 5 1 4 0.0 >> 8 1 5 2 4 1.0 >> 9 1 5 1 5 1.0 >> 10 1 5 2 5 2.0 >> .. ... . . .. ... >> I want to add a probability column, the prob column depends on id >> grouped by for each i the rank will be current (value / max value ) for >> the same id for specific i, it would be >> >> Measure_id i j id value prob >> 1 1 5 1 1 2.0 2/2 >> 2 1 5 2 1 2.0 2/2 >> 3 1 5 1 2 1.5 1.5/1.5 >> 4 1 5 2 2 1.5 1.5/1.5 >> 5 1 5 1 3 0.0 0 >> 6 1 5 2 3 0.0 0 >> 7 1 5 1 4 0.0 0/1 >> 8 1 5 2 4 1.0 1/1 >> 9 1 5 1 5 1.0 1/2 >> 10 1 5 2 5 2.0 2/3 >> .. ... . . .. ... >> >> then I want to add a rank column that rank regarding probability, if >> the probability equal they took the same rank for the same id belongs >> to the same i, otherwize lower probability took higher rank for examole >> if we have three values for i=7 and for the three values the id is 1 >> and the probability is ( .2,.4,.5) the rank should be 3,2,1 >> >> >> >> I looked at aggregate and dplyr...should I use for loop and subset each >> i and id rows do calculations and then group them again ?? >> is there easier way? >> >> replying highly appreciated >>> >>> >>> >>>> Date: Sun, 6 Sep 2015 19:02:02 -0400 >>>> Subject: Re: [R] groups Rank >>>> From: sarah.gos...@gmail.com >>>> To: ragi...@hotmail.com >>>> CC: r-help@r-project.org >>>> >>>> Please use dput() to provide data, rather than expecting people to >>>> open random attachments. Besides, there are multiple options for >>>> getting data into R, and we need to know exactly what you did. >> dput() >>>> is faster and easier. >>>> >>>> What have you tried? Did you look at aggregate() as I suggested? >>>> >>>> Sarah >>>> >>>> On Sat, Sep 5, 2015 at 10:44 AM, Ragia Ibrahim <ragi...@hotmail.com> >> wrote: >>>>> thanks for replying, I attached the data frame for source "i" I >> want >>>>> to sum the values and get the max value then add a new column >> called >>>>> rank . That new column cell value for each source i and for >> specific >>>>> id would be (value/max value) * count of rows that have the same >>>>> criteria "same i and same id" >>>>> >>>>> many thanks >>>>> Ragia >>>>> >>>>>> Date: Fri, 4 Sep 2015 10:19:35 -0400 >>>>>> Subject: Re: [R] groups Rank >>>>>> From: sarah.gos...@gmail.com >>>>>> To: ragi...@hotmail.com >>>>>> CC: r-help@r-project.org >>>>>> >>>>>> Hi Ragia, >>>>>> >>>>>> I can't make out your data or desired result, but it sounds like >>>>>> aggregate() might get you started. If you need more help, please >>>>>> repost your data using dput() and do NOT post in HTML so that we >>>>>> can see what your desired result looks like. >>>>>> >>>>>> Sarah >>>>>> >>>>>> On Fri, Sep 4, 2015 at 10:12 AM, Ragia Ibrahim >>>>>> <ragi...@hotmail.com> >>>>>> wrote: >>>>>>> Dear Group,kinldy, I have the following data frame df id value1 1 >>>>>>> 4 2 1 4 3 1 6 4 1 6 5 2 1.5 6 2 2.5 7 2 2.5 8 2 2.5 >>>>>>> >>>>>>> add rank column regarding id coulmn where rank for the highest >>>>>>> value would be 1, others rank would be the (value/ value of >>>>>>> heighest)/ >>> number of >>>>>>> rows that took the same value >>>>>>> thus the data frame should be >>>>>>> id value Rank1 1 4 0.332 1 4 0.333 1 6 0.54 1 6 0.55 2 1.5 0.6 6 >> 2 >>>>>>> 2.5 >>>>>>> 0.337 2 2.5 0.338 2 2.5 0.33 >>>>>>> >>>>>>> how to reach this resultthanks in advanceRagia [[alternative HTML >>>>>>> version deleted]] >>>>>>> >> >> ______________________________________________ >> R-help@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. > > ________________________________ > Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a jsou > určeny pouze jeho adresátům. > Jestliže jste obdržel(a) tento e-mail omylem, informujte laskavě neprodleně > jeho odesílatele. Obsah tohoto emailu i s přílohami a jeho kopie vymažte ze > svého systému. > Nejste-li zamýšleným adresátem tohoto emailu, nejste oprávněni tento email > jakkoliv užívat, rozšiřovat, kopírovat či zveřejňovat. > Odesílatel e-mailu neodpovídá za eventuální škodu způsobenou modifikacemi či > zpožděním přenosu e-mailu. > > V případě, že je tento e-mail součástí obchodního jednání: > - vyhrazuje si odesílatel právo ukončit kdykoliv jednání o uzavření smlouvy, > a to z jakéhokoliv důvodu i bez uvedení důvodu. > - a obsahuje-li nabídku, je adresát oprávněn nabídku bezodkladně přijmout; > Odesílatel tohoto e-mailu (nabídky) vylučuje přijetí nabídky ze strany > příjemce s dodatkem či odchylkou. > - trvá odesílatel na tom, že příslušná smlouva je uzavřena teprve výslovným > dosažením shody na všech jejích náležitostech. > - odesílatel tohoto emailu informuje, že není oprávněn uzavírat za společnost > žádné smlouvy s výjimkou případů, kdy k tomu byl písemně zmocněn nebo písemně > pověřen a takové pověření nebo plná moc byly adresátovi tohoto emailu > případně osobě, kterou adresát zastupuje, předloženy nebo jejich existence je > adresátovi či osobě jím zastoupené známá. > > This e-mail and any documents attached to it may be confidential and are > intended only for its intended recipients. > If you received this e-mail by mistake, please immediately inform its sender. > Delete the contents of this e-mail with all attachments and its copies from > your system. > If you are not the intended recipient of this e-mail, you are not authorized > to use, disseminate, copy or disclose this e-mail in any manner. > The sender of this e-mail shall not be liable for any possible damage caused > by modifications of the e-mail or by delay with transfer of the email. > > In case that this e-mail forms part of business dealings: > - the sender reserves the right to end negotiations about entering into a > contract in any time, for any reason, and without stating any reasoning. > - if the e-mail contains an offer, the recipient is entitled to immediately > accept such offer; The sender of this e-mail (offer) excludes any acceptance > of the offer on the part of the recipient containing any amendment or > variation. > - the sender insists on that the respective contract is concluded only upon > an express mutual agreement on all its aspects. > - the sender of this e-mail informs that he/she is not authorized to enter > into any contracts on behalf of the company except for cases in which he/she > is expressly authorized to do so in writing, and such authorization or power > of attorney is submitted to the recipient or the person represented by the > recipient, or the existence of such authorization is known to the recipient > of the person represented by the recipient. ______________________________________________ R-help@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.