के रैंक के आधार पर आर में डेटा फ्रेम में एक कॉलम जोड़ना मेरे डेटा का एक पुन: प्रस्तुत उदाहरण है। निम्न डेटा फ्रेम के लिए:किसी अन्य कॉलम
Subject SNR Rank
John -4 1
John -4 1
John 0 2
John 4 3
Mary 0 1
Mary 4 2
Mary 4 2
Mary 8 3
मैं कोशिश की है:
df <- data.frame(Subject = c('John', 'John', 'John', 'John','Mary', 'Mary', 'Mary', 'Mary'),
SNR = c(-4,-4,0,4,0,4,4,8))
मैं एक स्तंभ 'पद' है कि, विषय से SNR के लिए एक रैंकिंग प्रदान करता है इतना है कि यह इस प्रकार दिखाई देगा जोड़ना चाहते हैं का उपयोग करते हुए:
dfNew <- transform(df, Rank = ave(SNR, Subject, FUN = function(x) rank(x, ties.method = "first")))
लेकिन मैं मिल निम्नलिखित:
Subject SNR Rank
John -4 1
John -4 2
John 0 3
John 4 4
Mary 0 1
Mary 4 2
Mary 4 3
Mary 8 4
मैंने अलग-अलग ties.method विकल्पों का उपयोग करने का भी प्रयास किया है, लेकिन कोई भी मुझे वह नहीं देता जो मैं ढूंढ रहा हूं (यानी, केवल 1-3 से रैंकिंग)।
किसी भी मदद की बहुत सराहना की जाएगी!
'dplyr :: dense_rank' के साथ प्रयास करें। या यदि आप पैकेज का उपयोग नहीं करना चाहते हैं तो बस इसके कोड का उपयोग करें; यह बेस आर कोड की केवल दो पंक्तियां हैं। –
'फ़ंक्शन (x) as.numeric (कारक (x)) 'आपके प्रयास में काम करेगा। या सिर्फ 'कारक (एक्स)' के बाद से 'एसएनआर' के प्रकार को वापस भेज देगा, वैसे भी – rawr
धन्यवाद @rawr, यह चाल है। – Rmg