【发布时间】:2016-05-26 02:52:42
【问题描述】:
我有一个数字向量 (nth_RT) 和一个数据框 (df):
nth_RT
[1] 0.61 0.47 0.50 0.53 0.50 0.56
df
# Subject RT Trial Block Rank
# (int) (int) (int) (int) (int)
#1 1 234 1 1 1
#2 1 239 3 1 2
#3 1 563 2 1 3
#4 1 230 1 2 1
#5 1 234 3 2 2
#6 1 467 2 2 3
#7 1 111 3 3 1
#8 1 466 2 3 2
#9 1 543 1 3 3
#10 2 44 2 1 1
#11 2 223 3 1 2
#12 2 343 1 1 3
#13 2 34 2 2 1
#14 2 242 3 2 2
#15 2 324 1 2 3
#16 2 54 1 3 1
#17 2 345 3 3 2
#18 2 656 2 3 3
我想计算每个主题的每个区块的第 n 个百分位数并将其添加为新列 (nth),即第一个区块第一个主题的 RT 的第 61 个百分位数,第 47 个百分位数的第 2 块第 1 主题的 RT,第 3 块第 1 主题的第 50 个百分位数,第 1 个第 2 参与者的第 53 个百分位数等。所以数据框看起来像这样:
df
# Subject RT Trial Block Rank nth
#1 1 234 1 1 1 310.28
#2 1 239 3 1 2 310.28
#3 1 563 2 1 3 310.28
#4 1 230 1 2 1 233.76
#5 1 234 3 2 2 233.76
#6 1 467 2 2 3 233.76
#7 1 111 3 3 1 466
#8 1 466 2 3 2 466
#9 1 543 1 3 3 466
#10 2 44 2 1 1 230.2
#11 2 223 3 1 2 230.2
#12 2 343 1 1 3 230.2
#13 2 34 2 2 1 242
#14 2 242 3 2 2 242
#15 2 324 1 2 3 242
#16 2 54 1 3 1 382.32
#17 2 345 3 3 2 382.32
#18 2 656 2 3 3 382.32
我有一个每个参与者一个区块的代码,但它不起作用:
nth_RT <-quantile(df$RT ~ Block * Subject, nth_RT[1])
有没有更好的方法来计算百分位数并将它们添加为新列?我想可以使用循环或函数从向量中连续读取每个值,然后计算百分位数。
【问题讨论】:
标签: r function loops vector percentile