6
के लिए रैंक की गणना करें मेरे पास df
प्रकार और मूल्यों के साथ है। मैं के type
के भीतर उन्हें रैंक करना चाहता हूं और n
की तुलना में कितनी अन्य पंक्तियों की संख्या x
(कॉलम pos
) से अधिक है।प्रत्येक समूह
उदा
df <- data.frame(type = c("a","a","a","b","b","b"),x=c(1,77,1,34,1,8))
# for type a row 3 has a higher x than row 1 and 2 so has a pos value of 2
मैं के साथ ऐसा कर सकते हैं:
library(plyr)
df <- data.frame(type = c("a","a","a","b","b","b"),x=c(1,77,1,34,1,8))
df <- ddply(df,.(type), function(x) x[with(x, order(x)) ,])
df <- ddply(df,.(type), transform, pos = (seq_along(x)-1))
type x pos
1 a 1 0
2 a 1 1
3 a 77 2
4 b 1 0
5 b 8 1
6 b 34 2
लेकिन इस दृष्टिकोण प्रकार a
पंक्ति 1 और 2 के बीच खाते संबंधों पर ध्यान नहीं देता क्या उत्पादन जहां संबंधों में एक ही राशि प्राप्त करने के लिए सबसे आसान तरीका मूल्य उदा
type x pos
1 a 1 0
2 a 1 0
3 a 77 2
4 b 1 0
5 b 8 1
6 b 34 2
+1 कोई आवश्यक आदेश! टूल रैट में 'रैंक' जोड़ा गया! – user1320502
+1! लेकिन 'मिनट' टाई विधि क्यों? – agstudy
बस 'मिनट' पढ़ें, यह संबंधों को वेक्टर में पाए जाने वाले सीक्यून्स में न्यूनतम मान बनाता है। अन्यथा मेरे संबंधों में दोनों का मूल्य 1 – user1320502