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.

Reply via email to