-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Ragia
Ibrahim
Sent: Monday, September 07, 2015 10:12 AM
To: Sarah Goslee; r-help at 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