Verilerim için tekrarlanabilir bir örnek. Aşağıdaki veriler çerçevesi için: denedimR sütununda bir veri çerçevesine başka bir sütunun rütbesine dayalı bir sütun ekleme
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))
Ben bir sütun böyle olmazdı böylece Konuya Göre SNR için bir sıralama sağlamaktadır 'rütbe' eklemek istiyorum kullanarak:
dfNew <- transform(df, Rank = ave(SNR, Subject, FUN = function(x) rank(x, ties.method = "first")))
Ama olsun şu:
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
Ayrıca farklı ties.method seçeneklerini kullanmayı denedim, ancak hiçbiri bana aradığım şeyi vermiyor (yani, yalnızca 1-3 arasında bir sıralama).
Herhangi bir yardım çok takdir edilecektir!
'dplyr :: dense_rank' ile deneyin. Ya da bir paket kullanmak istemiyorsanız sadece kodunu kullanın; Bu sadece iki satır R kodu. –
'işlevi (x) as.numeric (factor (x))' girişimi çalışır. ya da sadece '' faktörü (x) '' ave zaten neyse 'SNR' türüne geri zorlayacaktır. – rawr
Teşekkür ederim @rawr, bu hile yaptı. – Rmg