【发布时间】:2016-05-24 12:48:20
【问题描述】:
我有一个数据框df:
Subject RT Trial Block
1 234 1 1
1 563 2 1
1 234 3 1
1 234 1 2
1 467 2 2
1 234 3 2
1 543 1 3
1 466 2 3
1 111 3 3
2 343 1 1
2 44 2 1
2 223 3 1
2 324 1 2
2 34 2 2
2 242 3 2
2 54 1 3
2 656 2 3
2 345 3 3
我想为每个块的每个主题分配 RT 等级,所以 df 看起来像这样:
Subject RT Trial Block Rank
1 234 1 1 1
1 563 2 1 3
1 239 3 1 2
1 230 1 2 1
1 467 2 2 3
1 234 3 2 2
1 543 1 3 3
1 466 2 3 2
1 111 3 3 1
2 343 1 1 3
2 44 2 1 1
2 223 3 1 2
2 324 1 2 3
2 34 2 2 1
2 242 3 2 2
2 54 1 3 1
2 656 2 3 3
2 345 3 3 2
然后我还想按Rank列的内容对数据框进行排序。
我有一位参与者的代码,如下所示:
df$Rank <- ave( df$RTs, FUN=rank ) # introduce ranks for Rts
df<- df[order(df$Rank),] # sorting a data frame by the contents of the Rank column
我尝试循环这段代码,但我认为我进入了一个无限循环:
for (sno in df$Subject){
for (bno in df$Block){
ss <- subset(df, Subject == sno & Block == bno)
df$Rank <- ave( df$RT, FUN=rank )
df<- df[order(df$Rank),]
}
我的循环有什么问题?或者也许有更好的方法来做这件事?
【问题讨论】: