R 基于相对排名创建新列
我想根据每个主题的奖励列的相对排名创建一个新列,但是如果赌博以不同的奖励重复,那么排名将跟随最高排名 这是我的数据,新列应该是这样的R 基于相对排名创建新列,r,rank,R,Rank,我想根据每个主题的奖励列的相对排名创建一个新列,但是如果赌博以不同的奖励重复,那么排名将跟随最高排名 这是我的数据,新列应该是这样的 subj gamble reward newcolumn 1 1 1 1.5 3.0 2 1 2 2.0 1.0 3 1 1 0.0 3.0 4 1 3 1.0 4.5 5 1 1
subj gamble reward newcolumn
1 1 1 1.5 3.0
2 1 2 2.0 1.0
3 1 1 0.0 3.0
4 1 3 1.0 4.5
5 1 1 0.0 3.0
6 1 4 1.0 4.5
7 2 2 5.0 1.0
8 2 1 0.5 2.5
9 2 4 0.0 4.0
10 2 1 0.0 1.5
到目前为止,我得到了这个密码
newdata<-transform(newdata,
reward.rank = ave(reward, subj,
FUN = function(x) rank(-x, )))
newdata
subj<-c(1,1,1,1,1,1,2,2,2,2)
gamble<-c(1,2,1,3,1,4,2,1,4,1)
reward<-c(1.5,2,0,1,0,1,5,0.5,0,0)
new<-data.frame(subj, gamble, reward)